【问题标题】:How to configure my Django log to function like the built-in development server log?如何配置我的 Django 日志以像内置的开发服务器日志一样运行?
【发布时间】:2015-04-02 22:37:37
【问题描述】:

我正在尝试在 settings.py 中配置我的日志记录配置,但选项太多,我无法复制内置的开发服务器日志(打印到控制台)。

我希望我的生产日志记录通常会在开发服务器日志中打印到控制台的相同信息(GET 请求、调试信息等)。我要么需要知道我需要在下面更改哪些设置,要么需要知道内置开发服务器日志的设置位置,以便我可以复制它。

LOGGING = {
    'version': 1,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
            },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/home/django/django_log.log',
            'formatter': 'simple'
            },
        },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
            },
        }
    }

if DEBUG:
    # make all loggers use the console.
    for logger in LOGGING['loggers']:
        LOGGING['loggers'][logger]['handlers'] = ['console']

如果可能的话,除了我的 settings.py 之外,我也不想在其他任何地方添加任何代码。我不想进入我的views.py并指定要打印或记录哪些错误,我从来不需要在开发服务器上这样做,所以我希望我能解决这个问题。

【问题讨论】:

标签: django django-settings


【解决方案1】:

在 Django 1.8 中,用于调试环境的 default logging configuration 是:

DEBUGTrue

  • django catch-all 记录器将WARNING 或更高级别的所有消息发送到控制台。 Django 目前不进行任何此类日志记录调用(所有日志记录都在 DEBUG 级别或由 django.requestdjango.security 记录器处理)。
  • 处理来自warnings.warn() 的消息的py.warnings 记录器将消息发送到控制台。

此日志记录配置可在 django.utils.log.DEFAULT_LOGGING 找到。请注意,包罗万象的记录器实际上也会获取信息消息,而不仅仅是警告及以上。

覆盖默认日志记录设置时,请注意disable_existing_loggers,如果设置为Truewill shut up all of Django's default loggers


开发服务器logs every incoming request directly to stderr是这样的:

[18/Oct/2015 12:08:17] "GET /about/ HTTP/1.1" 200 9946

这是特定于开发服务器的,不会转移到生产环境中,除非您复制它with middleware

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多