【发布时间】:2019-09-20 14:54:53
【问题描述】:
所以,我正在尝试为我的 Django 项目创建一个日志系统,我需要将所有不同的日志级别消息保存到不同的文件中。
TLDR,
我设法让特定级别的日志出现在各自的文件中,但是
Debug.log 包含所有日志级别的消息
Info.log 包含所有离开调试的日志级别消息
warning.log 包含 WARN、ERROR 和 CRITICAL 日志级别消息
error.log 包含 ERROR & CRITICAL 日志级别消息
critical.log 仅包含 CRITICAL 日志级别消息
所以,我关注了官方https://docs.djangoproject.com/en/2.2/topics/logging/
从Django rest framework logging different levels on different files得到更清晰的图片
然后写了如下代码。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'debug_logs': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'logs/debug.log',
'formatter': 'verbose',
},
'error_logs': {
'level': 'ERROR',
'class': 'logging.FileHandler',
'filename': 'logs/error.log',
'formatter': 'verbose',
},
'warn_logs': {
'level': 'WARN',
'class': 'logging.FileHandler',
'filename': 'logs/warn.log',
'formatter': 'verbose',
},
'info_logs': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': 'logs/info.log',
'formatter': 'verbose',
},
'critical_logs': {
'level': 'CRITICAL',
'class': 'logging.FileHandler',
'filename': 'logs/critical.log',
'formatter': 'verbose',
},
},
'loggers': {
'': {
'handlers': ['error_logs', 'warn_logs', 'info_logs', 'critical_logs', 'debug_logs'],
'level': 'DEBUG',
'propagate': True,
},
},
}
所以,现在我得到的结果如下,
debug.log
INFO 2019-05-02 05:36:22,888 autoreload 1683 4558792128 使用 StatReloader 监视文件更改 错误 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 错误! 调试 2019-05-02 05:36:26,604 获取问题 1683 123145336807424 调试 信息 2019-05-02 05:36:26,604 获取问题 1683 123145336807424 信息 警告 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 警告 关键 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 关键
info.log
INFO 2019-05-02 05:36:22,888 autoreload 1683 4558792128 使用 StatReloader 监视文件更改 错误 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 错误! 信息 2019-05-02 05:36:26,604 获取问题 1683 123145336807424 信息 警告 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 警告 关键 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 关键
warn.log
ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 错误! 警告 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 警告 关键 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 关键
error.log
ERROR 2019-05-02 05:36:26,604 getQuestions 1683 123145336807424 错误! 关键 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 关键
critical.log
关键 2019-05-02 05:36:26,605 getQuestions 1683 123145336807424 关键
【问题讨论】:
标签: python django django-logging python-logging