【问题标题】:Django Logging - How to remove SQL query in logging fileDjango Logging - 如何删除日志文件中的 SQL 查询
【发布时间】:2019-03-19 11:17:15
【问题描述】:

我尝试让 Django Logging 记录来自服务器的错误。现在我的代码:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(PROJECT_LOCAL_URL, 'mylog.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

当我检查mylog.log 时,它有太多的 sql 查询字符串 - SELECT FROM,我不想看到。我该如何配置?

如何删除日志文件中的所有 sql 查询?

【问题讨论】:

    标签: django logging django-logging


    【解决方案1】:

    数据库查询由django.db.backends 记录器记录。假设您仍然希望在其他任何地方进行 DEBUG 级别的日志记录,那么您需要专门为该记录器定义一个规则以忽略 DEBUG 日志记录:

    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django.db.backends': {
            'handlers': ['file'],
            'level': 'WARNING',   # DEBUG will log all queries, so change it to WARNING.
            'propagate': False,   # Don't propagate to other handlers
        },
    },
    

    【讨论】:

    • 谢谢。有用。但是将级别更改为对数据库查询的WARNING,这听起来不合理?
    • 您可以改用INFO 级别,这是DEBUG 的下一个级别。这取决于您要记录多少。
    • 谢谢@solarissmoke。选出你最好的答案!
    猜你喜欢
    • 2021-09-19
    • 2021-06-24
    • 2016-07-12
    • 2011-06-01
    • 2019-12-18
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多