我正在尝试在各种没有固定结构的日志文件中查找单词“错误” ,同时忽略已知的误报。以这样的日志行为例:
21:55:50 [wsgi:error] [/app/whatever.py] debug: Harmless message
21:55:50 [wsgi:error] [/app/somethingelse.py] error: Problem message
我想匹配包含error
的行,但如果只有wsgi:error
,则不匹配,即仅匹配第二行。
我不想想按行分隔行,只匹配例如从第3个字段开始,因为我有一些混合的日志文件,其中有来自不同来源的消息,而且格式不如上面的好。
我正在寻找一种基本的方法:
如果该行显示“错误”或“致命”,则匹配,但如果唯一的匹配是“ wsgi:error”或“问题不是致命的”,则不匹配。我明白了。
>此刻,我用'xxxx'替换所有列入白名单的模式,然后才查找错误,但这是一个很肮脏的解决方案。我希望有一个更好的:)
理想情况是在Python 3.6+中,也许带有一些正则表达式魔术?
有什么想法吗?