按需更改记录器

时间:2013-01-17 22:02:09

标签: python logging

假设我有一个带有StreamHandler和FileHandler的根记录器。任何子记录器都将继承根记录器。有什么方法可以修改子记录器,例如,它以不同的格式保存消息,然后为根记录器配置。

[<logging.StreamHandler instance at 0x0884B850>, <logging.FileHandler instance at 0x0C7A84E0>

1 个答案:

答案 0 :(得分:4)

您可以在子记录器上附加一个新的处理程序,它具有自己的格式化程序。

您应该能够创建一个与根处理程序写入同一文件的处理程序,因为flush操作使用锁定。

handler = logging.FileHandler(filename)
formatter = logging.Formatter(newformat)
handler.setFormatter(formatter)

log = logging.getLogger(yourloggername)
log.setHandler(handler)
log.propagate = False   # don't send messages to the root, handle it all here