我通过Java的Log4j和Python的日志记录模块生成的日志做了很多准备工作。两者都创建包括换行符的堆栈跟踪,从而导致日志条目跨越多行。这使得使用grep很难找到东西,并且违反了常规的日志文件格式设置规则(每行一个条目)。
如果我在堆栈跟踪中发现了一些有趣的东西,则必须打开整个日志文件(该文件可能很大)并浏览到找到的grep行,然后向上滚动以找到日志条目的开始。这感觉很笨拙。
有没有更好的方法来解决这个问题?也许以某种方式从堆栈跟踪中删除换行符?
感谢您的任何建议!
最佳答案
如果您有GNU grep,则可以使用-C
(AKA --context
)开关:
-C NUM, --context = NUM
打印NUM行输出上下文。将包含-的线放在
连续的匹配组。
我不确定-C
是否是POSIX grep的一部分,但值得一试。
关于log4j - 堆栈跟踪的grep友好日志记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4941874/