特定ID请求的grep日志行

苏萨·加斯帕(Sousa Gaspar)

因此,我有以下日志示例:

2015-03-30 10:19:44,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] A log message 1
2015-03-30 10:19:45,250 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] A log message 2
2015-03-30 10:19:45,700 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] log message of exception occurred in 
abc.cdef.class.sdk.SampleException: Message exception..
<stacktrace lines goes here>
2015-03-30 10:19:46,100 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] A log message 3
2015-03-30 10:19:46,120 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] A log message 4
2015-03-30 10:19:46,120 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d800e80-5276-4006-a44d-dd4cea7bcbe1 Info:P13 Code:AB4D] A log message 6

服务器中的每个请求都是唯一的IDA。我想对具有特定IDA的所有日志行进行grep,然后将其与所有已发现的事件一起放入另一个日志文件中。我之所以使用grep,是因为它还会在找到这些模式的位置附加文件和行号(grep –n)(搜索是在2个或3个文件中进行)。但是,我仍然希望包括stacktrace异常,这不会发生,因为这些行没有我要搜索的IDA。

此外,该堆栈跟踪异常也可能作为特定IDA的最后一个条目的一部分发生,如下所示:

2015-03-30 10:19:44,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCD] A log message 1
2015-03-30 10:19:45,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:BECD] A log message 2
2015-03-30 10:19:44,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:DFCD] A log message 3
2015-03-30 10:19:45,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:BBCD] A log message 4
2015-03-30 10:19:45,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:6d87de8e-1276-4496-b49d-dd4cd375cbe4 Info:P23 Code:ABCC] log message of exception occurred in 
abc.cdef.class.sdk.SampleException: Message exception..
<stacktrace lines goes here>
2015-03-30 10:19:45,200 DEBUG [Default : 1] [Application:ABC BIW: IDA:ed8ede83-1116-4697-a69d-ee6cd575cbe7 Info:P23 Code:ABDD] A log message 5

有什么建议可以做到这一点?

PS1-我一直在搜索,但是我最多发现标签之间的搜索,在我看来这还不够好。

PS2-我的解决方案目前仅是一个线性grep,但我对其他解决方案持开放态度,例如perl,awk,sed,python或任何其他“ bash命令方式”。

疾病

Perl解决方案:

perl -ne '$id = "6d87de8e-1276-4496-b49d-dd4cd375cbe4";
          print if $match = (/IDA:$id/ .. /IDA:(?!$id)/)
                and $match !~ /E0$/
         ' *.log

解释:

  • /regex1/ .. /regex2/ 对于匹配项之间的行,返回true。
  • IDA:(?!$id)表示IDA: 不跟$ id。
  • 范围的最后一行由E0条件检查后缀表示,因此不会打印最后一行(具有不同IDA的那一行)。

要包括文件名和行号,请​​使用

print "$ARGV:$.:$_"

并在结束语前添加以下内容:

; $. = 0 if eof

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用grep仅输出部分日志行

来自分类Dev

在Android中删除特定的日志行

来自分类Dev

sshd日志行格式

来自分类Dev

此日志行的Grok模式

来自分类Dev

Extentreport 日志行正在重复

来自分类Dev

Splunk:查找不具有记录为不同日志行的特定属性的事件

来自分类Dev

在后台运行命令,等待特定的日志行,然后在前台运行新命令

来自分类Dev

无法使用nginx logwarn正确解析出包含特定关键字的日志行

来自分类Dev

如何解析NAT日志行并进行特定的CSV输出

来自分类Dev

如何读取日志行并在它们包含特定字符串的情况下进行回显

来自分类Dev

SQLiteOpenHelper.setWriteAheadLoggingEnabled导致错误日志行

来自分类Dev

Rails Logger似乎正在复制日志行

来自分类Dev

如何阅读猪的“详细位置”日志行?

来自分类Dev

覆盖默认的系统日志行为

来自分类Dev

消除日志行中的重复字段

来自分类Dev

用awk解析单个日志行

来自分类Dev

覆盖默认的系统日志行为

来自分类Dev

Rails Logger似乎正在复制日志行

来自分类Dev

删除包含哈希字符的日志行

来自分类Dev

自定义日志行的Grok模式

来自分类Dev

如何使用FileBeat从日志行设置字段

来自分类Dev

结合 log4j 日志行

来自分类Dev

增量备份中的奇怪日志行为

来自分类Dev

在kibana中组合多个日志行

来自分类Dev

净停止“服务”不拆分日志行

来自分类Dev

抑制特定ActiveRecord请求的Rails日志记录

来自分类Dev

从日志中排除特定的错误请求

来自分类Dev

Laravel日志记录:日志行末尾有多余的方括号?

来自分类Dev

使用grep和awk从日志文件中提取特定行