识别python日志记录处理程序类型

时间:2015-10-30 00:37:38

标签: python logging

我想动态更改python日志文件。我可以通过删除现有的处理程序,然后添加一个新的处理程序来做到这一点:

for hdlr in log.handlers:  # remove all old handlers
    log.removeHandler(hdlr)
log.addHandler(fileh) 

但是,如果我的记录器有多个处理程序,比如流处理程序,旋转文件处理程序,我想删除

2 个答案:

答案 0 :(得分:2)

想出我们可以找到文件流的类来删除选择性处理程序:

for handler in logger:
  if handler.__class__.__name__ == 'FileHandler':
    logger.removeHandler(handler)

答案 1 :(得分:0)

记录器不可迭代。它必须是logger.handlers。

for handler in logger.handlers:
    if handler.__class__.__name__ == 'FileHandler':
    logger.removeHandler(handler)