Я не вижу записей журнала (на уровне INFO
), сделанных Django в моих журналах Heroku.
Это моя конфигурация:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
'not_development_filter': {
'()': NotDevelopmentFilter,
},
},
'handlers': {
'console':{
'level': 'INFO',
'class': 'logging.StreamHandler',
},
'null': {
'class': 'django.utils.log.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['not_development_filter'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
}
},
'loggers': {
'': {
'handlers': ['mail_admins', 'console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'py.warnings': {
'handlers': ['console'],
},
}
}
Я хотел бы видеть записи журнала в интерфейсе Heroku. Есть идеи, почему я их там не вижу?
print
что-тоstdout
?Ответы:
В приложении python-Getting- Start, для журнала, который не помечен
django
,ERROR
журналы уровня отображаются вheroku
журналах, ноINFO
журналы нет.Чтобы это работало для журналов, которые не помечены
django
, необходима конфигурация, подобная следующей (похожей на вашу):Так что, если вы измените свою конфигурацию так, чтобы она была похожа на работу с Python, включая Procfile, она должна работать.
Вот журнал, который не помечен как django, к которому я добавил
views/hello.py
:Когда я впервые попробовал это, только журнал ошибок обнаружился. Когда я добавил конфигурацию регистрации в фрагмент кода выше предыдущего, появилась информация и журналы ошибок. Это все с
DEBUG = False
(по сравнению с кодом в репо, который естьDEBUG = True
).Вероятно, лучше иметь вместо пустого строкового ключа, чтобы все регистрировалось, иметь более конкретные
loggers
записи, чем просто пустую строку (''
).Наконец, в вашем файле журнала есть случай, когда журналы INFO не будут отображаться на консоли или журналы Heroku: если это журнал INFO в
django.request
, с вашей конфигурацией он будет идти только'mail_admins'
потому, чтоpropagate
естьFalse
. Я думаю, что в этом случае было бы больше смысла дляpropagate
установкиTrue
.источник