【问题标题】:grep-friendly logging of stack tracesgrep 友好的堆栈跟踪记录
【发布时间】:2011-06-23 22:26:05
【问题描述】:

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

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

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

感谢您的任何建议!

【问题讨论】:

  • 能否重新配置日志格式?
  • 我自己从未尝试过,但如果是 Java,你也可以使用这个程序:logging.apache.org/chainsaw

标签: log4j grep stack-trace error-logging


【解决方案1】:

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

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

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

【讨论】:

  • 这不是我想要的,但我想这是最好的选择。谢谢。
【解决方案2】:
 grep 'your expressing and file name' | less

这将首先显示小筹码。然后进入了解更多。

你也可以做文件名的“头”或“尾”

  tail -1000 'filename'

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

【讨论】:

    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2016-05-14
    • 2013-11-16
    • 1970-01-01
    相关资源
    最近更新 更多