未找到 "myapp.lib" 的日志处理器
我刚刚升级到了Django 1.3,这个版本自带了一个日志模块。我设置了日志功能,并且在通过Apache/mod_wsgi访问模块时,它是正常工作的。但是,当我在使用django shell时,日志功能就不行了——我总是会遇到那个著名的错误:“找不到处理程序来处理日志记录器'myapp.lib'”在shell中工作时总是出现这个问题。
这是我settings.py中与日志相关的部分:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'file': {
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'simple',
'filename': '/var/log/myapp.log',
'maxBytes': '4096',
'backupCount': '5'
},
'console': {
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
}
},
'loggers': {
'myapp.lib': {
'handlers': ['file', 'console',],
'level': 'INFO',
},
}
}
这是导致错误的Python代码:
import logging
l=logging.getLogger(__name__)
l.warn("foo")
1 个回答
1
要在Django的命令行界面中记录日志,你需要运行:
import logging
l=logging.getLogger('myapp.lib')
l.warn("foo")
__name__
在命令行界面中是 __main__
。