我正在使用Django 1.6,并希望添加 - 而不是替换 - Django的默认日志记录.具体来说,我想这样做,除了Django的默认日志记录行为之外,任何日志级别DEBUG或更高级别的日志记录都会写入自动轮换的日志文件中.
基于我通过搜索和我自己的实验发现的内容,您似乎必须重新定义所有日志记录(Django的默认值以及我的旋转文件日志记录),即使在使用时也是如此'disable_existing_loggers': False.我想我可能做错了什么.
我想看看我的settings.py文件中放入什么的示例,这将允许我完成此操作.
settings.py只是Python,所以我们可以这样做:
from django.utils.log import DEFAULT_LOGGING
# Use defaults as the basis for our logging setup
LOGGING = DEFAULT_LOGGING
# We need some formatters. These ones are from the docs.
LOGGING['formatters'] = {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
}
# A log file handler that rotates periodically
LOGGING['handlers'].update({
'rotate': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'verbose',
'filename': '/tmp/debug.log',
}
})
# The default 'django' logger is a catch-all that does nothing. We replace it with
# a rotating file handler.
LOGGING['loggers'].update({
'django': {
'handlers': ['rotate'],
'propagate': True,
'level': 'DEBUG',
}
})
# If you don't want to completely replace the django handler, you could do something
# like this instead:
#LOGGING['loggers']['django']['handlers'] += ['rotate']
Run Code Online (Sandbox Code Playgroud)
这会将您的旋转文件处理程序添加到现有处理程序中,定义基本格式化程序,并将捕获所有记录器(不执行任何操作)替换为替换默认记录器的记录器
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |