Django使用dictConfig进行日志记录时找不到“logging”模块

4

我的设置中的 LOGGING 指令被设定为:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': '[%(asctime)s] %(levelname)s::(%(process)d %(thread)d)::%(module)s - %(message)s'
        },
    },
    'handlers': {
        'file_handler': {
            'level': 'DEBUG',
            'formatter':'default',
            'class': 'logging.TimedRotatingFileHandler',
            'filename':'Project_log',
            'when':'midnight',
            'interval':1
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['file_handler'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}

处理器的类根据文档示例设置为logging.HandlerName:https://docs.djangoproject.com/en/dev/topics/logging/。但我收到了以下错误消息:
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 776, in dictConfig
    dictConfigClass(config).configure()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py",     line 575, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'file_handler': Cannot resolve 'logging.TimedRotatingFileHandler': No module named TimedRotatingFileHandler
1个回答

10

你需要编写以下代码:

logging.handlers.TimedRotatingFileHandler

由于TimedRotatingFileHandler是logging包中的处理程序之一。


1
我刚刚在IPython中检查了一下,如果您只需要找出确切需要导入什么,那么它非常棒。 - BergmannF
应该使用 logging.handlers.TimedRotatingFileHandler - Franz Wong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接