我已设置此日志记录配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'verbose': {
'format': '%(asctime)s %(levelname)s [%(name)s:%(lineno)s] %(module)s %(process)d %(thread)d %(message)s'
}
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout,
'formatter': 'verbose'
}
},
'loggers': {
'gunicorn.errors': {
'level': 'INFO',
'handlers': ['console'],
'propagate': True,
},
}
}
似乎根本没有效果。当标志DEBUG
设置为True
时,我可以在控制台中看到一些错误。但是当它设置为False
时,我不能。那么,尽管DEBUG
标志被设置为某种方式,如何将错误记录到控制台?
答案 0 :(得分:4)
在django 1.9
default logging configuration has been changed:
更改默认日志记录配置¶
为了更容易编写自定义日志记录配置,Django's 默认日志记录配置不再定义'django.request'和 'django.security'记录器。相反,它定义了一个'django' 记录器,在INFO级别过滤,有两个处理程序:
'console':在INFO级别过滤,仅在DEBUG = True时才有效。 'mail_admins':在ERROR级别过滤,仅在有效时才激活 DEBUG = FALSE。如果您没有覆盖Django的默认日志记录,那么 应该看到行为的微小变化,但你可能会看到一些新的变化 例如,记录到runserver控制台。
如果要覆盖Django的默认日志记录,则应该检查 了解您的配置如何与新的默认值合并。
所以你需要做的就是覆盖默认配置,将其添加到loggers
:
'django':{
'level': 'INFO',
'handlers': ['console'],
'propagate': True,
}
登录到控制台现在不依赖于DEBUG
。
希望这有帮助!
答案 1 :(得分:2)
尝试将--capture-output
和--enable-stdio-inheritance
与古尼康一起添加
/home/ubuntu/inside-env/bin/gunicorn --access-logfile access.log --error-logfile error.log --capture-output --enable-stdio-inheritance --workers 3 --bind unix:/home/ubuntu/path-to-project/webapp.sock project.wsgi:application
然后在您的视图中
import logging
logging.basicConfig(level='DEBUG')
logging.info('...something...')