我最近将我的 django 生产网络应用程序从 切换apache+mod_wsgi到nginx+uwsgiin emperor mode。除了 Time Rotated 日志文件,其他一切都好。我的网络应用程序使用一个名为appname.log的日志文件来记录所有请求,并且使用 apache 它在午夜轮换没有问题。
由于uwsgi文件在午夜轮换,但一些 uwsgi 进程/工作程序写入此轮换文件(示例轮换文件:appname.log.2017-01-08)而不是写入appname.log,这会导致轮换文件被覆盖。
一个解决方案似乎正在触及 uwsgi .ini 文件(我不完全确定......),但如果用户仍然连接到我的应用程序,我不想重新启动/重新加载 uwsgi。
我可以使用一种可能性或配置来通知所有 uwsgi 进程日志文件已更改,而无需重新启动 Web 应用程序?如果可能的话,我会有和我在apache+mod_wsgi.
ConcurrentLogHandler太旧了,我不想使用 syslog 或 logrotate :)
有人有同样的问题吗?有人有建议吗?
谢谢
这是我的设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[%(asctime)s];[%(levelname)s];[Proc:%(process)d];[Thread:%(thread)d];%(module)s-%(funcName)s:%(lineno)d;Msg:%(message)s;'
},
'simple': {
'format': '[%(asctime)s] [%(levelname)s] %(message)s'
},
},
'filters': {
'require_debug_false': { …Run Code Online (Sandbox Code Playgroud)