django logging - 仅记录警告和错误

时间:2015-05-26 06:49:42

标签: python django logging

我试图配置django来捕获调试和信息日志消息。我有两个处理程序。但他们似乎只想捕获警告和错误消息。

有人可以帮助指出我可能犯过的愚蠢的错误,但无法弄清楚。

###  DJANGO LOGGING
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters':{
        'hc' : {
            'format': '%(asctime)s %(levelname)s %(name)s\n%(message)s'
        },

    },
    'handlers': {
        'primary_log_handler':{
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': MAIN_LOG_FILE,
            # 5MB file size
            'maxBytes' : 5242880,
            'encoding' : 'utf-8',
            'backupCount' : 5,
            'formatter' : 'hc'
        },
        'debug_log_handler':{
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': DEBUG_LOG_FILE,
            # 5MB file size
            'maxBytes' : 5242880,
            'encoding' : 'utf-8',
            'backupCount' : 5,
            'formatter' : 'hc'
        },

    },
    'loggers': {        
        'some_module': {
            'handlers': ['primary_log_handler', 'debug_log_handler',],}
        'some_other_module': {
            'handlers': ['debug_log_handler',],},              
    },
}

此外,在实例化记录器时,我会这样做:

import logging
# Get an instance of a logger
logger = logging.getLogger(__name__)

然后在我的相关代码中:

logger.debug('debug')
logger.info('info')
logger.warning('warn')
logger.error('err')

关于Django 1.8和Python 2.7

4 个答案:

答案 0 :(得分:3)

尝试在loggers级别配置:

'loggers': {        
    'some_module': {
        'handlers': ['primary_log_handler', 'debug_log_handler',],
    'level': 'DEBUG'}
    'some_other_module': {
        'handlers': ['debug_log_handler',],
     'level': 'DEBUG'},              
},

答案 1 :(得分:1)

只需更改

'level': 'DEBUG'

到你想要的日志级别。

答案 2 :(得分:0)

LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "handlers": {
        "console": {"class": "logging.StreamHandler",},
        "file": {
            "level": "DEBUG",
            "class": "logging.FileHandler",
            "filename": "log.django",
        },
    },
    "loggers": {
        "some_module": {
            "handlers": ["primary_log_handler", "debug_log_handler",],
            "level": "DEBUG",
        },
        "some_other_module": {"handlers": ["debug_log_handler",], "level": "DEBUG"},
    },
}

答案 3 :(得分:0)

可能已经晚了,但我遇到了同样的问题。检查配置中正确的 LOGGER_NAME 解决了它:

settings.py
 LOGGER_NAME = 'some_module.{}'

希望这对其他人有帮助。