将 PyCharm 的控制台输出格式化为 json 日志

Guy*_*rin 7 python intellij-idea pycharm

我正在开发一个应用程序,其日志格式为 JSON,其结构类似于

{"level": "INFO", "lineno": 85, "timestamp": "2020-01-01", "message": "Some message"}
Run Code Online (Sandbox Code Playgroud)

这种格式在日志发送到 ELK 的生产中非常有效,但随着日志变得越来越复杂,在 PyCharm 中理解它们会变得更加困难。

我正在寻找一种方法将控制台的输出格式化(这样我就不必更改代码中日志的格式)为更具可读性,例如

2020-01-01 INFO 85 Some message
Run Code Online (Sandbox Code Playgroud)

在寻找一些解决方案时,我发现了这个选项bunyan,并且还建议使用 GrepConsole。我没能让他们中的任何一个工作。

bunyan解决方案根本不起作用。日志一直显示为 JSON,GrepConsole 非常适合过滤或突出显示某些文本,但不适合操作。

任何想法将不胜感激。

小智 1

从 python3.11 开始,使用 json-formatter 时新的堆栈跟踪变得更加复杂。

然而,Pycharm 添加了一个小的“软包装”选项,它将把 json 扩展为完整大小:

这: 在此输入图像描述

变成这样: 在此输入图像描述

希望它能有所帮助。