1

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

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

1 回答 1

4

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

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

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
于 2013-01-17T22:11:01.827 回答