我是logging我们的Plone包中的一些调试信息,当buildout记录器级别设置为DEBUG时需要呈现,但我发现有点难以使用这些信息,因为有一些其他模块(如Chameleon和transaction)使用同一级别,但实际上非常详细,如下所示:
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: 7a9bea82827d89ebb6409b5b5b3c446f.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: 05974e2b844eb50bd08b35e69524ff1e.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: 05974e2b844eb50bd08b35e69524ff1e.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: fd6cd084759f934ad5b1873dcc864e89.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: fd6cd084759f934ad5b1873dcc864e89.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: 388b0bfda4923b35fa189b2f6f1e352e.py.
2014-01-17 16:56:38 DEBUG chameleon.loader loading module from cache: 388b0bfda4923b35fa189b2f6f1e352e.py.
2014-01-17 16:56:38 DEBUG txn.140171035764480 commit <Connection at 05b26150>
2014-01-17 16:56:38 DEBUG txn.140171035764480 commit
2014-01-17 16:56:38 DEBUG txn.140171035764480 new transaction
2014-01-17 16:56:38 DEBUG txn.140171035764480 abort
2014-01-17 16:56:38 DEBUG txn.140171035764480 new transaction
2014-01-17 16:56:38 DEBUG txn.140171027371776 new transaction
2014-01-17 16:56:38 DEBUG txn.140171035764480 commit
2014-01-17 16:56:38 DEBUG txn.140171035764480 new transaction
2014-01-17 16:56:38 DEBUG txn.140171035764480 abort
有没有办法为这些其他模块提供不同的记录器级别?
我在buildout.cfg上使用以下配置:
[instance]
debug-mode = on
event-log-level = DEBUG
verbose-security = on
z2-log-level = DEBUG
答案 0 :(得分:1)
您无法在buildout中为特定模块(产品)设置调试级别。
buildout event-log-level
是一个全局设置。
答案 1 :(得分:0)
您无法更改其他软件包的日志级别,无需修补它们。
然而,你可以使用下一个更高级别(我认为你的包中的logger.warn()会将实例更改为此级别。
或者你在instance.log上使用grep
,只在你的包名上使用grep。
答案 2 :(得分:0)
我不确定这是否与fRiSi建议的相同,但这是我几周前解决问题的方法:
import logging
logger = logging.getLogger('my.product')
# Our logging will be shown with level at INFO & not with level at WARN
logger.setLevel(logging.WARN)
...
def update(self):
logger.info("starting banner search at %s " % self.context )
if IFolderish.providedBy(self.context):
logger.info("findBannerImageFor(self) %s " % self.context )
这不会显示任何日志记录,但您可以将相关行更改为:logger.setLevel(logging.INFO)
,您将看到所有内容(并且没有任何交易内容)