【问题标题】:Filter log fle by database name including traceback messages按数据库名称过滤日志文件,包括回溯消息
【发布时间】:2021-05-18 19:32:23
【问题描述】:

我正在尝试按数据库名称过滤日志文件,但是当我使用 grep 命令时,我丢失了 Traceback 消息

tail -f log.txt

2021-05-18 19:05:21,866 1066171 ERROR database1 (...)
Traceback (most recent call last):(...)
  File(...)
2021-05-18 19:05:21,879 1066171 INFO database1 (...)
2021-05-18 19:05:21,866 1066171 ERROR database2 (...)
Traceback (most recent call last):(...)
  File(...)

tail -f log.txt | grep 数据库1

2021-05-18 19:05:21,866 1066171 ERROR database1 (...)
2021-05-18 19:05:21,879 1066171 INFO database1 (...)

如何过滤来自 database1 的所有消息,包括 Treceback 行

【问题讨论】:

  • 如果您正在寻找特定的回溯,您可以使用 grep 的 -A 始终在匹配行之后列出特定数量的行。否则,您将需要使用比 grep 更强大的工具来进行多行词法分析。一些常见的选项是 logstash、fluentd 或丑陋的 perl 脚本。

标签: linux bash logging


【解决方案1】:

如果回溯总是在错误行之后,那么应该这样做:

tail -f log.txt | grep -A1 database1 | grep -E "database1|Traceback"

【讨论】:

    猜你喜欢
    • 2022-06-30
    • 2019-10-10
    • 2013-01-08
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2019-09-20
    • 1970-01-01
    相关资源
    最近更新 更多