【发布时间】: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 脚本。