为什么将Python Logger输出输出到尾部或LNAV会弄乱输出线的结尾



我有一个长期运行的python程序,可产生许多日志。我想使用外部工具(LNAV,Multitail,...)格式化日志,主要是为了获得彩色日志而不更改我的代码(例如,在[ERROR]上获得红色,在[INFO]上绿色等)。问题在于,将Python程序输送到尾巴,LNAV或其他任何东西都会弄乱线路的结尾。这是日志正常外观的示例:

[INFO]: Started
[INFO]: Data 0 captured
[ERROR]: Connection down

这就是管道到尾巴,lnav等时的样子

[INFO]: Started
                 [INFO]: Data 0 captured  [ERROR]: Connection down

是由管道引起的吗?我该如何尊重线结尾?

我发现自己有同样的问题,经过大量实验,这是对我有用的:

  1. 在您的Python Logger中,设置记录格式,请确保将SYS.Stdout用作流
import sys
import logging
FORMAT = '[%(asctime)s] %(levelname)s %(name)s - %(message)s'
logging.basicConfig(format=FORMAT, stream=sys.stdout)
  1. [可选]为了充分利用LNAV,您需要教它如何解释您使用的日志格式。

    这是我在上面的格式字符串中使用的LNAV日志解析器。

最新更新