INFO
In meinen Heroku-Protokollen werden keine von Django erstellten Protokolleinträge (auf einer Stufe von ) angezeigt.
Das ist meine Konfiguration:
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'],
},
}
}
Ich möchte die Protokolleinträge in der Heroku-Oberfläche sehen. Irgendeine Idee, warum ich sie dort nicht sehe?
print
etwas zustdout
?Antworten:
In der App " Erste Schritte mit Python" werden für ein Protokoll, das nicht mit Tags versehen ist
django
,ERROR
Protokolle der Ebene in Protokollenheroku
angezeigt,INFO
Protokolle jedoch nicht.Damit es für Protokolle funktioniert, die nicht mit Tags versehen sind
django
, ist eine Konfiguration wie die folgende erforderlich (ähnlich Ihrer):Wenn Sie also Ihre Konfiguration so anpassen, dass sie ansonsten wie ein Einstieg in Python aussieht, einschließlich des Procfile, sollte es hoffentlich funktionieren.
Hier ist ein Protokoll, das nicht mit django markiert ist und zu dem ich Folgendes hinzugefügt habe
views/hello.py
:Als ich es zum ersten Mal versuchte, wurde nur das Fehlerprotokoll angezeigt. Als ich die Protokollierungskonfiguration im Code-Snippet über der vorherigen hinzufügte, wurden die Info- und die Fehlerprotokolle angezeigt. Dies ist alles mit
DEBUG = False
(geändert von dem Code im Repo, der hatDEBUG = True
).Es ist wahrscheinlich besser, als den leeren Zeichenfolgenschlüssel zu haben, damit alles protokolliert wird, um spezifischere
loggers
Einträge als nur die leere Zeichenfolge (''
) zu haben.Schließlich werden in der Protokolldatei, gibt es einen Fall , in dem INFO - Protokolle werden nicht auf der Konsole angezeigt werden , oder Heroku protokolliert: Wenn es ein INFO Protokoll ist
django.request
, mit der Config wird es nur gehen ,'mail_admins'
weilpropagate
istFalse
. Ich denke, dass es in diesem Fall sinnvoller wäre,propagate
darauf eingestellt zu seinTrue
.quelle