feat: added logging
This commit is contained in:
@@ -158,3 +158,70 @@ MEDIA_ROOT = BASE_DIR / 'media'
|
||||
|
||||
EMAIL_USE_TLS = True
|
||||
EMAIL_USE_SSL = False
|
||||
|
||||
|
||||
# Logging
|
||||
# https://docs.djangoproject.com/en/6.0/topics/logging/
|
||||
|
||||
# Se define entero (en vez de dejar el DEFAULT_LOGGING de Django) porque ese
|
||||
# default, con DEBUG=False, solo engancha un handler de consola cuando
|
||||
# DEBUG=True y manda los errores (django.request) por email a ADMINS cuando
|
||||
# DEBUG=False; aquí ni ADMINS ni un EMAIL_HOST de verdad están configurados
|
||||
# (ver env.py), así que en producción los 500 no se veían en ningún sitio.
|
||||
# Con un handler de consola sin ese filtro, cualquier error queda en
|
||||
# stdout/stderr, que es lo que recogen los logs del contenedor (`docker logs`,
|
||||
# lo que agregue la plataforma de despliegue, etc.).
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'formatters': {
|
||||
'verbose': {
|
||||
'format': '{asctime} {levelname} {name} {message}',
|
||||
'style': '{',
|
||||
},
|
||||
},
|
||||
'handlers': {
|
||||
'console': {
|
||||
'class': 'logging.StreamHandler',
|
||||
'formatter': 'verbose',
|
||||
},
|
||||
},
|
||||
# A WARNING fijo (no LOG_LEVEL): captura cualquier logger que no esté
|
||||
# listado abajo (de terceros: weasyprint, whitenoise, PIL...) para que
|
||||
# nada se pierda del todo, pero sin su parloteo en INFO/DEBUG -algunas
|
||||
# librerías, como weasyprint, ya avisan cosas en INFO solo con
|
||||
# importarlas-. 'django' y 'crochet' sí usan LOG_LEVEL, más abajo.
|
||||
'root': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING',
|
||||
},
|
||||
'loggers': {
|
||||
'django': {
|
||||
'handlers': ['console'],
|
||||
'level': LOG_LEVEL,
|
||||
'propagate': False,
|
||||
},
|
||||
# Aquí es donde Django registra la traza completa de cualquier
|
||||
# excepción no controlada en una vista (un 500): sin esto configurado
|
||||
# explícitamente, en producción (DEBUG=False) solo se intentaba
|
||||
# mandar por email a ADMINS, no configurado.
|
||||
'django.request': {
|
||||
'handlers': ['console'],
|
||||
'level': 'ERROR',
|
||||
'propagate': False,
|
||||
},
|
||||
'django.security': {
|
||||
'handlers': ['console'],
|
||||
'level': 'WARNING',
|
||||
'propagate': False,
|
||||
},
|
||||
# Logger propio de la app, para poder hacer
|
||||
# logging.getLogger(__name__) desde cualquier módulo de crochet/ sin
|
||||
# tener que tocar esta configuración cada vez.
|
||||
'crochet': {
|
||||
'handlers': ['console'],
|
||||
'level': LOG_LEVEL,
|
||||
'propagate': False,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user