【问题标题】:Duplicate log output when using Django logging module使用 Django 日志记录模块时重复的日志输出
【发布时间】:2020-11-03 01:03:43
【问题描述】:

我在我的 Django settings.py 文件中使用以下日志记录 sn-p。如下图所示,所有日志都被捕获了两次。

我保留 root 对象的原因是我想在控制台中捕获 logger.info() 以及日志文件

settings.py

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'simple': {
        'format': '[%(asctime)s] %(levelname)s|%(name)s|%(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S',
    },
},
'handlers': {
    'applogfile': {
        'level': 'DEBUG',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(BASE_DIR, 'django_blend.log'),
        'backupCount': 10,
        'formatter': 'simple',
    },
    'console': {
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'simple'
    }
},
'root': { # this tells to capture logger.info() to console as well as in log file
        'handlers': ['console', 'applogfile'],
        'level': 'INFO',
    },
'loggers': {
        'django': {
            'handlers': ['applogfile', 'console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
                }
        }
}

django.log

【问题讨论】:

    标签: django logging


    【解决方案1】:

    我在 Django 3.2.7 中测试了您的代码,如果 删除根对象 它工作正常并且您也没有重复的行。

    LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '[%(asctime)s] %(levelname)s|%(name)s|%(message)s',
            'datefmt': '%Y-%m-%d %H:%M:%S',
        },
    },
    'handlers': {
        'applogfile': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'django_blend.log'),
            'backupCount': 10,
            'formatter': 'simple',
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        }
    },
    
    'loggers': {
            'django': {
                'handlers': ['applogfile', 'console'],
                'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
                    },
    
            },
           
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 1970-01-01
      • 2015-04-05
      • 2011-10-21
      • 2013-08-15
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      相关资源
      最近更新 更多