grep 友好的堆栈跟踪记录

发布于 2024-10-16 10:08:27 字数 275 浏览 3 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏末的微笑 2024-10-23 10:08:27

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

-C NUM--context=NUM
打印 NUM 行输出上下文。在之间放置一条包含 -- 的行
连续的匹配组。

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

If you have GNU grep you can use the -C (AKA --context) switch:

-C NUM, --context=NUM
Print NUM lines of output context. Places a line containing -- between
contiguous groups of matches.

I'm not sure if -C is part of POSIX grep but it is worth a shot.

妥活 2024-10-23 10:08:27
 grep 'your expressing and file name' | less

这将首先向您展示小堆栈。然后进入了解更多信息。

您还可以对文件名执行“head”或“tail”

  tail -1000 'filename'

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

 grep 'your expressing and file name' | less

This will show you small stack first. Then enter to learn more.

You could also do 'head' or 'tail' of file name

  tail -1000 'filename'

This shows last(tail) 1000 lines from that file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文