tutorial template español django django-logging

template - inclusion tags django



¿Por qué el registro de Django omite las entradas de registro? (4)

Puede agregar el registrador "catch all" a la sección de loggers:

''loggers'': { '''': { ''handlers'': [''file''], ''level'': ''DEBUG'', } }

Capturará todos los mensajes de registro que no son capturados por los registradores predeterminados de Django.

Este es mi módulo de configuración:

LOGGING = { ''version'': 1, ''disable_existing_loggers'': False, ''handlers'': { ''file'': { ''level'': ''DEBUG'', ''class'': ''logging.FileHandler'', ''filename'': ''/django-python/django/testapp/testapp.log'', }, }, ''loggers'': { ''django'': { ''handlers'': [''file''], ''level'': ''DEBUG'', ''propagate'': True, }, }, }

y este es mi código en un archivo de vista:

import logging logger = logging.getLogger(__name__) logger.info("this is an error message!!")

Recibo los registros anteriores de varios módulos, pero no la entrada de registro anterior "este es un mensaje de error".


Su configuración de registro solo captura registros dentro del espacio de nombres de django .

Esta línea:

logger = logging.getLogger(__name__)

... le dice al registrador que use el nombre de su módulo como el espacio de nombres para estos registros ( docs ). Si su módulo se llama mymodule , entonces puede capturar estos registros agregando algo como esto a su configuración de registro:

''loggers'': { ''django'' : {...}, ''mymodule'': { ''handlers'': [''file''], ''level'': ''DEBUG'', ''propagate'': True, }, },


debe agregar la configuración del registrador debido al nombre de su aplicación, algo así como

''your_app_name'': { ''handlers'': [''file''], ''level'': ''DEBUG'', ''propagate'': True, },

Por ahora, solo ha declarado logger para los mensajes predeterminados de django (como errores del sistema)

Observe que el nivel de los mensajes del registrador es importante, por lo tanto, cuando esté utilizando

logger.info("this is an error message!!")

Método para imprimir el mensaje El nivel de su registrador debe ser INFO o más estricto.


import logging logger = logging.getLogger(__name__)

después de añadir:

logging.basicConfig( level = logging.DEBUG, format = ''%(name)s %(levelname)s %(message)s'', )

o simplemente añadir settings.py:

import logging logging.basicConfig( level = logging.DEBUG, format = ''%(name)s %(levelname)s %(message)s'', )

podemos cambiar el formato a:

format = ''"%(levelname)s:%(name)s:%(message)s" '',

o

format = ''%(name)s %(asctime)s %(levelname)s %(message)s'',