grep 友好的堆栈跟踪记录
我对 Java 的 Log4j 和 Python 的日志记录模块生成的日志进行了大量的 grep 操作。两者都会创建包含换行符的堆栈跟踪,导致日志条目跨越多行。这使得用 grep 很难找到东西,并且违反了传统的日志文件格式规则(每行一个条目)。
如果我在堆栈跟踪中发现一些有趣的内容,我必须打开整个日志文件(可能非常大)并浏览到 grep 找到的行,然后向上滚动以找到日志条目的开头。这感觉很混乱。
有更好的方法来处理这个问题吗?也许以某种方式从堆栈跟踪中删除换行符?
感谢您的任何建议!
I do a lot of grepping through logs generated by Java's Log4j and Python's logging module. Both create stack traces that include newline characters, causing the log entry to span multiple lines. This makes things hard to find with grep and violates the conventional log file formatting rules (one entry per line).
If I find something interesting in the stack trace, I have to open entire the log file (which can be very large) and browse to the line grep found, then scroll up to find the start of the log entry. This feels kludgey.
Is there a better way to handle this? Perhaps removing newline characters from stack traces somehow?
Thanks for any suggestions!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您有 GNU grep,则可以使用
-C
(又名--context
)开关:我不确定 -C 是否是 POSIX grep 的一部分,但值得一试。
If you have GNU grep you can use the
-C
(AKA--context
) switch:I'm not sure if
-C
is part of POSIX grep but it is worth a shot.这将首先向您展示小堆栈。然后进入了解更多信息。
您还可以对文件名执行“head”或“tail”
这会显示该文件的最后(尾部)1000 行。
This will show you small stack first. Then enter to learn more.
You could also do 'head' or 'tail' of file name
This shows last(tail) 1000 lines from that file.