Log4j grep友好的堆栈跟踪日志记录

Log4j grep友好的堆栈跟踪日志记录,log4j,grep,stack-trace,error-logging,Log4j,Grep,Stack Trace,Error Logging,我对Java的Log4j和Python的日志模块生成的日志进行了大量的grepping。两者都会创建包含换行符的堆栈跟踪,从而导致日志条目跨越多行。这使得使用grep很难找到东西,并且违反了传统的日志文件格式规则(每行一个条目) 如果我在堆栈跟踪中发现了一些有趣的内容,我必须打开整个日志文件(可能非常大),浏览到grep find行,然后向上滚动以找到日志条目的开头。这感觉糟透了 有没有更好的方法来处理这个问题?也许以某种方式从堆栈跟踪中删除换行符 谢谢你的建议 grep 'your expr

我对Java的Log4j和Python的日志模块生成的日志进行了大量的grepping。两者都会创建包含换行符的堆栈跟踪,从而导致日志条目跨越多行。这使得使用grep很难找到东西,并且违反了传统的日志文件格式规则(每行一个条目)

如果我在堆栈跟踪中发现了一些有趣的内容,我必须打开整个日志文件(可能非常大),浏览到grep find行,然后向上滚动以找到日志条目的开头。这感觉糟透了

有没有更好的方法来处理这个问题?也许以某种方式从堆栈跟踪中删除换行符

谢谢你的建议

 grep 'your expressing and file name' | less
这将首先显示小堆栈。然后进入了解更多信息

您还可以使用文件名的“head”或“tail”

  tail -1000 'filename'

这将显示该文件的最后(尾部)1000行。

如果您有GNU grep,您可以使用
-C
(又称
--context
)开关:

-CNUM,-context=NUM
打印输出上下文的行数。放置一行,其中包含-- 连续的匹配组


我不确定
-C
是否是POSIX grep的一部分,但值得一试。

这不是我想要的,但我想这是最好的选择。谢谢。你能重新配置日志格式吗?我自己从来没有试过,但如果是Java,你也可以使用这个程序: