gpt4 book ai didi

python - 配置 Django 日志记录 - SQL 和其他消息

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:03 25 4
gpt4 key购买 nike

我正在尝试配置 Django 应用程序的日志记录,以便 Django 的 ORM 生成的所有 SQL 都记录到 sql.log,并且 Django 记录的所有其他消息都记录到另一个文件。我的 setup.py 日志记录部分如下所示:

'version': 1,
'disable_existing_loggers': False,
'formatters': ...
'handlers': {
'logfile' : {
'class': 'logging.handlers.WatchedFileHandler',
'filename': '.../django.log',
'formatter': 'verbose',
},
'sqlfile': {
'class': 'logging.handlers.WatchedFileHandler',
'filename': '.../sql.log',
'formatter': 'simple',
},
'apache_log': {
'class': 'logging.StreamHandler',
'level': 'ERROR',
'formatter': 'verbose',
}
},
'loggers': {
'django': {
'handlers': ['logfile', 'apache_log'],
'propagate': True,
'level': 'INFO',
},
'django.db': {
'handlers': ['sqlfile'],
'propagate': True,
'level': 'DEBUG',
},
}

SQL 确实被记录到 sql.log,但它也被记录到 django.log,尽管我专门将“django”记录器上的日志级别设置为 INFO。

我错过了什么?

最佳答案

我认为stalk是对的。事件记录到django.db传递给附加到 django.db 的处理程序记录器,但也会传递给 django 的处理程序和根记录器除非 propagate设置为False对于django.db记录器。请参阅this diagram了解记录器和处理程序的工作原理。

设置propagateFalse ,事件记录到django.db只会传递给sqlfile处理程序。

关于python - 配置 Django 日志记录 - SQL 和其他消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256155/

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