uWSGI启动日志格式化为JSON

3
uWSGI有一个选项可以禁用正在运行的应用程序的日志记录。这样,我就可以从Python中控制我的应用日志记录。然而,禁用这些日志仍然会保留通常格式的uWSGI启动消息,例如:
[uWSGI] getting INI configuration from /app/uwsgi.ini
*** Starting uWSGI 2.0.18 (64bit) on [Tue Nov 12 08:36:47 2019] ***
compiled with version: 8.3.0 on 12 November 2019 08:35:14
...

这些文件的问题在于它们没有被格式化为json,这意味着所有日志信息都会显示为错误信息在我的日志查看器Google Stackdriver中。 uWSGI有一个编码/格式化日志的选项,请参见此处,具体是log-encoder = json { ...选项。
问题在于,如果我使用上述选项将日志编码为json,具体如下:
log-encoder = json {"unix":${unix}, "msg":"${msg}"}

创业公司的日志就这么消失了。我该如何将启动日志格式化为JSON?
1个回答

4
  1. 应用程序日志(Python日志)
  2. uWSGI服务器日志(有关服务器启动,错误,警告的信息)
  3. 请求日志
如果我理解正确,您对第2点(uWSGI服务器日志)的日志有问题。
像这样的配置适用于我:
logger = default stdio
log-route = default ^((?!\{).)*$
log-encoder = json:default {"time":"${micros}", "source":"uwsgi", "message":"${msg}"}
log-encoder = nl

您可以使用logger-reqlog-req-encoder选项分别格式化请求日志。
有关uWSGI中JSON日志记录的更多信息以及所有日志类型的完整配置,请单击此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接