如何配置我的Django日志以像内置的开发服务器日志一样运行?

ste*_*han 5 django django-settings

我正在尝试在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']
Run Code Online (Sandbox Code Playgroud)

我也不想在其他任何地方添加任何代码,除非我的settings.py,如果可能的话.我不想进入我的views.py并指定要打印或记录的错误,我从来没有用开发服务器这样做,所以我希望我能弄清楚这一点.

app*_*lue 4

在 Django 1.8 中,调试环境的默认日志配置是:

\n
\n

DEBUG什么时候True

\n
    \n
  • 包罗万象django的记录器将所有级别WARNING或更高级别的消息发送到控制台。Django 此时不会\xe2\x80\x99 进行任何此类日志记录调用(所有日志记录均位于 和 记录器级别DEBUG或由django.requestdjango.security记录器处理)。
  • \n
  • py.warnings处理来自 的消息的记录器将warnings.warn()消息发送到控制台。
  • \n
\n
\n

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

\n

当覆盖默认日志记录设置时,请注意,disable_existing_loggers如果设置为True将关闭 Django 的所有默认记录器

\n
\n

开发服务器将每个传入请求直接记录到 stderr,如下所示:

\n
[18/Oct/2015 12:08:17] "GET /about/ HTTP/1.1" 200 9946\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n