我有一个 Pylons/TurboGears 应用程序。我想记录相同的记录器(由qualname
属性指定)以使用两个不同的日志处理程序,每个处理程序都有自己的日志级别。
Sentry / Raven 记录器应该只接收 WARN+ 级别的 SQLAlchemy 消息,而控制台记录器应该接收 INFO+ 级别的 SQLAlchemy 消息。
这是我的缩写 ini 文件:
[loggers]
keys = root, sqlalchemy_console, sqlalchemy_sentry
[handlers]
keys = console, sentry
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console, sentry
[logger_sqlalchemy_console]
level = INFO
handlers = console
qualname = sqlalchemy.engine
propagate = 0
[logger_sqlalchemy_sentry]
level = WARN
handlers = sentry
qualname = sqlalchemy.engine
propagate = 0
然而,logger_sqlalchemy_sentry
似乎覆盖logger_sqlalchemy_console
并窃取了它的信息。无论 ini 文件中记录器的顺序如何,都会发生这种情况。
是否可以使用 Pylons 将相同的 logger/qualname 记录到具有不同级别的多个位置?
如果是这样,Sentry/Raven 是否有可能成为这些记录器之一?我的 ini 文件有问题,还是 Raven 有错误?