我在Django应用程序中修改了日志系统,因此在某些情况下记录一些警告消息。这些新的警告日志文件正常工作,但默认的日志信息文件已停止旋转,现在所有邮件都转到同一个.log文件,而不是每天轮换并压缩旧文件,并删除旧文件。我正在使用在uWSGI和Nginx中运行的Django 1.9。 Nginx日志文件工作得很好。这是我的设置文件的日志记录部分的样子:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'hc': {
'format': '%(asctime)s \n%(message)s'
},
'verbose': {
'format': ' [%(asctime)s] [%(levelname)s] [%(name)s] %(message)s'
},
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
},
'error': {
'level': 'ERROR',
'class': 'logging.handlers.TimedRotatingFileHandler',
'backupCount': 50,
'when': "D",
'interval': 1,
'filename': '/var/log/django/error.log',
'formatter': 'verbose'
},
'alarm': {
'level': 'WARNING',
'class': 'logging.handlers.TimedRotatingFileHandler',
'backupCount': 50,
'when': "D",
'interval': 1,
'filename': '/var/log/django/warningalarm.log',
'formatter': 'hc'
},
},
'loggers': {
'': {
'handlers': ['error'],
'propagate': True,
},
'django': {
'handlers': ['console'],
'propagate': True,
},
'application': {
'handlers': ['alarm'],
'level': 'WARNING',
'propagate': False,
},
}
这是我的应用程序的uwsgi .ini文件:
[uwsgi]
# Define variables
project = %n
# Config
uid = www-data
gid = www-data
socket = /tmp/app.sock
master = true
no-orphans = true
chdir = /home/deploy/App
module = App.wsgi:application
virtualenv = /url/to/virtualenvs/App
logto = /var/log/uwsgi/%(project).log
有没有办法恢复django / uwswi日志记录的默认行为,以便文件像以前一样开始旋转和压缩?