有没有办法从 uwsgi 格式化时间戳

有没有办法从 uwsgi 格式化时间戳

这些是 uwsgi 日志格式的文档。

http://uwsgi-docs.readthedocs.io/en/latest/LogFormat.html

我在日志消息中输出时间戳时有几个不可接受的选择。有没有一种方法可以格式化 YYYY-MM-DD HH-MM-SS.DDDDDD,但尚未记录?

答案1

通过阅读 github 上的代码,我发现了一个暗示解决方案的问题。

这是我最终使用的命令行

uwsgi --log-date="%Y:%m:%d %H:%M:%S" --logformat-strftime --logformat="%(ftime) %(addr) (%(proto) %(status)) %(method) %(uri) : Retned %(size) bytes in %(msecs) msecs to %(uagent)" --http :9090 --wsgi-file foo.py 

我几乎不可能通过阅读文档得出这个结论。它确实需要所有 3 个选项(不确定顺序是否重要)和 (%ftime) 的使用,而 logformat 文档页面根本没有提到这一点,仅在某个版本的更改日志中提到过。

似乎无法获取日志行中的毫秒数

答案2

从技术上讲,您可以使用 (自 1.9.21 起) 以原始格式获取毫秒数%(tmsecs),但它实际上并不是人类可读的,甚至没有msec用点分隔各部分:(1637061200823最后 3 位数字)。

我认为对于 Python 应用程序来说,最简单的方法是使用“用户定义的日志变量”,但我没有关于开销的基准。

相关内容