未找到 "myapp.lib" 的日志处理器

1 投票
1 回答
6586 浏览
提问于 2025-04-16 14:19

我刚刚升级到了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__

撰写回答