consumeMessage applyNo:6918880065513199433,costTime:118 我的日志是这样子的
时间: 2024-02-27 14:53:18 浏览: 53
这个日志中包含了消息的`applyNo`和处理时间`costTime`,你可以使用awk命令来提取这些信息。以下是一个可以提取applyNo和costTime的awk命令示例:
```bash
awk -F'[ :,]+' '/applyNo/{applyNo=$8} /costTime/{costTime=$10; if(costTime>100){print "applyNo:"applyNo", costTime:"costTime}}' log.txt
```
在上述命令中,`-F'[ :,]+'`表示使用空格和冒号作为分隔符。`/applyNo/{applyNo=$8}`表示如果找到了`applyNo`,就将其保存在变量`applyNo`中。同样,`/costTime/{costTime=$10; if(costTime>100){print "applyNo:"applyNo", costTime:"costTime}}`表示如果找到了`costTime`,就将其保存在变量`costTime`中,并检查它是否大于100毫秒。如果是,就输出`applyNo`和`costTime`。
请注意,此命令假设日志文件中有applyNo和costTime这两个字段,并且它们的顺序和格式与示例日志中的相同。如果你的日志格式不同,你需要相应地修改awk命令。
相关问题
this.$router.push({ name: 'ReportDetail', params: { data }, query: { applyNo: val, type } });
这是一段 Vue.js 代码,使用 `$router.push` 方法进行页面跳转。其中,`name` 属性表示目标路由的名称为 `ReportDetail`,`params` 属性表示将 `data` 对象作为参数传递给目标路由,`query` 属性表示将 `applyNo` 和 `type` 作为查询参数传递给目标路由。具体来说,`params` 用于传递动态路由参数,而 `query` 用于传递查询参数。在目标路由组件中,可以通过 `$route.params` 和 `$route.query` 来获取这些参数。
@PostMapping("/v1/straddle") public Result<String> paging(@RequestBody @Valid final SealPagingDTO sealPagingDTO, final BindingResult bindingResult) { if (log.isInfoEnabled()) { log.info("开始调用骑缝章服务.applyNo:[{}],param:[{}]", sealPagingDTO.getApplyNo(), sealPagingDTO); } if (bindingResult.hasErrors()) { return Result.failure(bindingResult.getAllErrors() .get(0) .getDefaultMessage()); } // 开启耗时统计. final StopWatch sw = new StopWatch(); sw.start(); // 骑缝章. final SealResultDTO<SealPagingResultDTO> resultDTO = this.sealPagingService.sealPaging(sealPagingDTO); sw.stop(); if (log.isInfoEnabled()) { log.info("调用签章骑缝章服务调用结束.applyNo:[{}],result:[{}],耗时为:[{}]毫秒", sealPagingDTO.getApplyNo(), resultDTO, sw.getTotalTimeMillis()); } return Optional.of(resultDTO) .filter(res -> SealConstant.HTTP_SUCCESS_CODE.equals(res.getRespCode())) .map(res -> Result.success(res.getDatas())) .orElseGet(() -> Result.failure(resultDTO.getRespMsg())); } 第一return返回的是String类型,第二个return成功返回的是T类型,怎么修改Result<String>
要修改第一个返回类型为String的问题,可以将方法的返回类型改为Result<String>,并在return语句中使用Result.success()方法来封装返回结果。具体修改如下:
```java
@PostMapping("/v1/straddle")
public Result<String> paging(@RequestBody @Valid final SealPagingDTO sealPagingDTO,
final BindingResult bindingResult) {
if (log.isInfoEnabled()) {
log.info("开始调用骑缝章服务.applyNo:[{}],param:[{}]", sealPagingDTO.getApplyNo(), sealPagingDTO);
}
if (bindingResult.hasErrors()) {
return Result.failure(bindingResult.getAllErrors()
.get(0)
.getDefaultMessage());
}
// 开启耗时统计.
final StopWatch sw = new StopWatch();
sw.start();
// 骑缝章.
final SealResultDTO<SealPagingResultDTO> resultDTO = this.sealPagingService.sealPaging(sealPagingDTO);
sw.stop();
if (log.isInfoEnabled()) {
log.info("调用签章骑缝章服务调用结束.applyNo:[{}],result:[{}],耗时为:[{}]毫秒",
sealPagingDTO.getApplyNo(),
resultDTO,
sw.getTotalTimeMillis());
}
return Optional.of(resultDTO)
.filter(res -> SealConstant.HTTP_SUCCESS_CODE.equals(res.getRespCode()))
.map(res -> Result.success(res.getDatas()))
.orElseGet(() -> Result.failure(resultDTO.getRespMsg()));
}
```
这样就将第一个return语句的返回类型修改为Result<String>了。
阅读全文