No veo entradas de registro (a nivel de INFO
) realizadas por Django en mis registros de Heroku.
Esta es mi configuración:
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'],
},
}
}
Me gustaría ver las entradas de registro en la interfaz de Heroku. ¿Alguna idea de por qué no los veo allí?
print
algostdout
?Respuestas:
En la aplicación Python-Getting- Start, para un registro que no está etiquetado
django
, losERROR
registros de nivel se muestran en losheroku
registros, pero losINFO
registros no.Para que funcione para los registros que no están etiquetados
django
, necesita una configuración como la siguiente (similar a la suya):Entonces, si ajusta su configuración para que sea como Python-Getting-Start, incluido el Procfile, es de esperar que funcione.
Aquí hay un registro que no está etiquetado como django, que agregué a
views/hello.py
:Cuando lo probé por primera vez, solo apareció el registro de errores. Cuando agregué la configuración de registro en el fragmento de código sobre la anterior, aparecieron la información y los registros de errores. Todo esto es con
DEBUG = False
(cambiado desde el código en el repositorio, que tieneDEBUG = True
).Probablemente es mejor, en lugar de tener la clave de cadena vacía, por lo que todo se registra, tener
loggers
entradas más específicas que solo la cadena vacía (''
).Finalmente, en su archivo de registro, hay un caso en el que los registros de INFO no aparecerán en la consola, o los registros de Heroku: si se trata de un registro de INFO
django.request
, con su configuración solo irá a'mail_admins'
porquepropagate
estáFalse
. Creo que en este caso, tendría más sentidopropagate
estar configuradoTrue
.fuente