Итак, я пытаюсь создать систему ведения журнала для моего проекта Django, где мне нужно сохранять все сообщения разных уровней журнала в разные файлы.
TLDR
Мне удалось заставить Журналы определенного уровня появляться в соответствующих файлах, но
Debug.log содержит все сообщения уровня журнала
Info.log содержит все сообщения уровня журнала, оставляющие отладку
warning.log содержит сообщения уровня журнала WARN, ERROR & CRITICAL
error.log содержит сообщения об ошибках и КРИТИЧЕСКИЕ сообщения уровня журнала
crit.log содержит только сообщения уровня журнала CRITICAL
Итак, я последовал за официальным https://docs.djangoproject.com/en/2.2/topics/logging/
Получил более четкую картинку из этого Django rest framework, регистрирующий разные уровни на разных файлах
Затем написал следующий код.
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 автозагрузка 1683 4558792128 Отслеживание изменений файлов с помощью StatReloader
ОШИБКА 2019-05-02 05: 36: 26 604 getQuestions 1683 123145336807424 Ошибка!
DEBUG 2019-05-02 05: 36: 26,604 getQuestions 1683 123145336807424 отладка
ИНФОРМАЦИЯ 2019-05-02 05: 36: 26 604 getQuestions 1683 123145336807424 info
ПРЕДУПРЕЖДЕНИЕ 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 автозагрузка 1683 4558792128 Отслеживание изменений файлов с помощью StatReloader
ОШИБКА 2019-05-02 05: 36: 26 604 getQuestions 1683 123145336807424 Ошибка!
ИНФОРМАЦИЯ 2019-05-02 05: 36: 26 604 getQuestions 1683 123145336807424 info
ПРЕДУПРЕЖДЕНИЕ 2019-05-02 05: 36: 26 605 getQuestions 1683 123145336807424 предупреждение
КРИТИЧЕСКИЙ 2019-05-02 05: 36: 26 605 getQuestions 1683 123145336807424 критический
warn.log
ОШИБКА 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
ОШИБКА 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 критический