[Python] Django: how to set log level to INFO or DEBUG

Discussão em 'Python' iniciado por Stack, Abril 30, 2025.

  1. Stack

    Stack Membro Participativo

    I tried to change the debug level to DEBUG in Django because I want to add some debug messages to my code. It seems to have no effect.

    My logging configuration:

    LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
    'simple': {
    'format': '%(levelname)s %(message)s'
    },
    },
    'handlers': {
    'console':{
    'level':'DEBUG',
    'class':'logging.StreamHandler',
    'formatter': 'simple'
    },
    },
    'loggers': {
    'django.request':{
    'handlers': ['console'],
    'propagate': False,
    'level': 'DEBUG',
    },
    },
    }


    Code:

    import logging ; logger = logging.getLogger(__name__)
    logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")
    logger.warn("THIS ONE IS")


    Output on the console:

    WARNING:core.handlers:THIS ONE IS


    I also have tried setting DEBUG = False and DEBUG = True in my settings file. Any ideas?

    Edit: If I set the log level on the logger directly, it works:

    import logging ; logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)
    logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")


    Output:

    DEBUG:core.handlers:THIS MESSAGE IS NOT SHOWN IN THE LOGS
    WARNING:core.handlers:THIS ONE IS


    But: It seems the config file is totally ignored. It prints both statements always even if I set both entries in the config back to ERROR. Is this the correct behaviour or am I still missing something?

    Continue reading...

Compartilhe esta Página