金字塔日志记录
我有一个金字塔应用程序,我想把日志输出到标准错误和标准输出。标准输出应该显示“信息”(INFO)级别及以下的日志,而标准错误则显示“警告”(WARN)级别及以上的日志。我该如何修改我的.ini文件来实现这个呢?
目前我这样记录日志,这样做算是正确的吗?
log = logger.getLogger(__name__) log.info("update ...") log.error("MAYDAY MAYDAY... BOOM!!!")
现在我使用的是默认的日志记录方式,就是这个。
[loggers] keys = root, app [handlers] keys = console [formatters] keys = generic [logger_root] level = WARN handlers = console [logger_app] level = WARN handlers = qualname = app [handler_console] class = StreamHandler args = (sys.stderr,) 85 level = NOTSET formatter = generic [formatter_generic] format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
1 个回答
11
你可以在根目录添加多个处理器,用逗号分隔。如果你想要过滤信息,而不仅仅是按照“只接受这个日志级别以上的信息”的标准(比如只接受调试信息),那么你需要使用类似日志过滤器的东西,根据具体的级别来接受或拒绝记录。你可以查看这个链接了解更多:http://docs.python.org/library/logging.html#filter-objects
你现在使用的日志记录方法 log = logging.getLogger(__name__)
是完全有效的,这也是一种方便的方式来组织日志的层级结构。