我希望uwsgi在json的不同行上输出日志消息。我尝试将以下内容添加到uwsgi.ini
文件中:
[uwsgi]
log-encoder = json {"unix":${unix}, "msg":"${msg}"}
但随后所有日志都被一行粘在一起:
$ uwsgi --ini uwsgi.ini
{"unix":1534303044, "msg":"nodename: RC00W00K3HTD6"}{"unix":1534303044, "msg":"machine: x86_64"}{"unix":1534303044, "msg":"clock source: unix"}{"unix":1534303044, "msg":"pcre jit disabled"}{"unix":1534303044, "msg":"detected number of CPU cores: 8"}
如果我将--log-encoder
作为uwsgi
的命令行参数传递给我,则可以在单独的行上输出它:
uwsgi --ini uwsgi.ini --log-encoder=$'json {"unix":${unix}, "msg":"${msg}"}\n'
但是,我希望所有配置都保存在一个.ini
文件中。我尝试将\n
添加到行尾,如下所示:
[uwsgi]
log-encoder = json {"unix":${unix}, "msg":"${msg}"}\n
但这只会导致\n
在消息之间打印。
我正在运行uwsgi v2.0.17.1。
答案 0 :(得分:0)
我通过实际阅读the docs找到了答案:
编码器可以由插件添加,并且可以链式启用(编码器的输出将是以下编码器的输入,依此类推)。
有一个内置的换行编码器,因此我们可以将其与json编码器结合起来,如下所示:
[uwsgi]
log-encoder = json {"unix":${unix}, "msg":"${msg}"}
log-encoder = nl