gpt4 book ai didi

django - 使用 Django 日志记录模块时重复日志输出

转载 作者:行者123 更新时间:2023-12-05 06:14:28 26 4
gpt4 key购买 nike

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

我保留 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

enter image description here

最佳答案

我在 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'),
},

},

}

关于django - 使用 Django 日志记录模块时重复日志输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62882552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com