【发布时间】:2015-12-30 00:33:29
【问题描述】:
我在 10 个进程中使用 UWSGI 启动我的 Django 1.8 应用程序。 UWSGI是在virtualenv下设置的。
Django 文件日志配置如下:
LOG_FILE_PATH = '/tmp/app_logs/debug.log'
...
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': LOG_FILE_PATH,
'formatter': 'verbose',
'when': 'midnight',
'interval': 1,
'backupCount': 0,
...
当我开始 UWSGI 日志记录工作正常 - 我看到 debug.log 正在更新条目。以及我在 UWSGI 日志文件中看到的活动:
/var/log/uwsgi/mysite.log
午夜过后,我看到 Django 日志文件轮换发生了(确实创建了 debug.log.2015-09-30),但它几乎是空的:
$ cat debug.log.2015-09-30
INFO 2015-10-01 17:45:21,362 MainScreen 1836 140697212401600 MainScreen is called with the following parameters: {}
ERROR 2015-10-01 17:45:21,362 MainScreen 1836 140697212401600 Login error: NotEnoughParametersError {}
此外,当前日志文件 debug.log 不再随应用活动更新。 UWSGI 日志文件也是如此:
$ tail -f /var/log/uwsgi/mysite.log
在应用程序启动并运行时保持静默。如果我重新启动 UWSGI,一切都会恢复正常,直到下一个午夜。
我怀疑这可能是 Django 日志记录的并发问题。我该如何克服呢?以及如何修复 UWSGI 日志?
【问题讨论】: