通过阅读官方的django文档,我对此并不了解。 https://docs.djangoproject.com/en/dev/topics/logging/#configuring-logging
如果将settings.py中的 DEBUG 设置为 True ,我也想启用日志记录。 我希望将错误记录在文件中。
怎么做?
这些是我现在拥有的日志记录的默认django设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
PS: 我在我的开发环境中使用Apache + mod_wsgi因为我使用的是我在局域网上远程访问的开发机器,这意味着我没有使用django开发服务器,我看不到控制台日志消息。
答案 0 :(得分:4)
默认情况下,除非您已将其设置为DEBUG模式,否则不会禁用Django日志记录。
在下面添加handlers
LOGGING
部分
'file':
{
'level':
'INFO',
'class':
'logging.FileHandler',
'formatter':
'verbose',
'filename':
'myapp.log'
}
它将记录到项目根目录中的myapp.log
文件。您可以指定完整路径。
将一个格式化字段添加到Logging dict
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format':
'%(levelname)s %(message)s'
},
},
答案 1 :(得分:0)
这是受Simple Log to File example for django 1.3+
启发的工作设置示例LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'logfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': SITE_ROOT + "/debug.log",
'maxBytes': 50000,
'backupCount': 2,
'formatter': 'custom',
},
},
'loggers': {
#'django': {
# 'handlers':['logfile'],
# 'level':'DEBUG',
# 'propagate': True,
#},
#'django.request': {
# 'handlers': ['mail_admins', 'logfile'],
# 'level': 'DEBUG',
# 'propagate': True,
#},
'nodeshot.core.mailing': {
'handlers': ['logfile'],
'level': 'DEBUG',
},
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'custom': {
'format': '%(levelname)s %(asctime)s\n%(message)s'
},
},
}