从日志中过滤多行

伯蒂斯马里乌斯

应该把这个问题移到stackoverflow吗?

我经常需要使用log4j读取Java应用程序生成的日志文件。通常,一条记录的消息(我们称其为日志条目)跨越多行。例子:

INFO  10:57:01.123 [Thread-1] [Logger1] This is a multi-line
text, two lines
DEBUG 10:57:01.234 [Thread-1] [Logger2] This entry takes 3 lines
line 2
line 3

请注意,每个日志条目都从新行开始,并且该行的第一个单词是TRACE,DEBUG,INFO或ERROR,并且至少有一个空格。在这里,有2个日志条目,第一个在毫秒123,另一个在毫秒234。

我想要一个快速命令(使用sed / grep / awk / etc的组合)来过滤日志条目(仅grep过滤行),例如:删除所有包含文本'Logger2'的日志条目。

我考虑过进行以下转换:

1)以特殊的字符序列(例如:##)连接属于相同日志条目的行;这样,所有日志条目将仅占一行

INFO  10:57:01.123 [Thread-1] [Logger1] This is a multi-line##text, two lines
DEBUG 10:57:01.234 [Thread-1] [Logger2] This entry takes 3 lines##line 2##line 3

2)grep
3)将行拆分回去(即:将##替换为\ n)

我在步骤1遇到了麻烦-我对sed没有足够的经验。

也许不需要上述3个步骤,也许sed可以完成所有工作。

科斯塔斯

无需混合许多乐器。任务可以这样做sed

sed '/^INFO\|^DEBUG\|^TRACE\|^ERROR/{
         /Logger2/{
             :1
             N
             /\nINFO\|\nDEBUG\|\nTRACE\|\nERROR/!s/\n//
             $!t1
             D     }
                                    }' log.entry

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从日志文件中读取多行日志

来自分类Dev

如何使用logstash过滤器处理多行日志条目?

来自分类Dev

重新过滤日志中的参数

来自分类Dev

从日志文件中的多行转换时代时间

来自分类Dev

如何在SQL中过滤多行条件

来自分类Dev

如何根据Rsyslog中的日志严重性过滤日志?

来自分类Dev

在Rails中过滤长日志参数

来自分类Dev

如何从Rails日志中过滤嵌套参数

来自分类Dev

Rails:从日志中过滤整个表单参数

来自分类Dev

简单表单-过滤日志中的更新属性

来自分类Dev

过滤Apache日志中的错误代码

来自分类Dev

使用模板引擎解析Java中的多行日志文件

来自分类Dev

使用bash解析Java日志中的多行条目

来自分类Dev

根据标签中的值从日志中提取多行XML

来自分类Dev

解析日志文件以获取多行中的相关数据

来自分类Dev

从包含多行 JSON 的日志文件中读取单个 JSON

来自分类Dev

Logstash:如何从较早的日志中保存条目,以便以后在日志中的多行中使用?

来自分类Dev

从Clojure Ring App中的日志中过滤敏感参数

来自分类Dev

从Clojure Ring App中的日志中过滤敏感参数

来自分类Dev

如何在vim中过滤一些多行语句

来自分类Dev

如何在多行/分隔行中过滤定义的模式

来自分类Dev

如何在Excel中获取多行排序/过滤标头

来自分类Dev

过滤node.js中的传出请求以进行日志记录

来自分类Dev

如何在python日志记录中过滤stdout

来自分类Dev

删除系统日志过滤器中的多个日期字段

来自分类Dev

发出从输出中过滤掉某些事件日志的问题

来自分类Dev

如何按SourceTree中的文件夹过滤日志?

来自分类Dev

按bash中的月份,日期和时间过滤日志文件

来自分类Dev

从strace日志中过滤出失败的系统调用

Related 相关文章

热门标签

归档