Reputation: 695
I would like to change python logging file on the fly. I could do that by removing the existing handler and then adding a new one:
for hdlr in log.handlers: # remove all old handlers
log.removeHandler(hdlr)
log.addHandler(fileh)
However, if my logger has multiple handlers, like stream handler, rotating file handler, , I would like to remove
Upvotes: 1
Views: 1409
Reputation: 561
logger is not iterable. It has to be logger.handlers.
for handler in logger.handlers:
if handler.__class__.__name__ == 'FileHandler':
logger.removeHandler(handler)
Upvotes: 1
Reputation: 695
Figured out the we could find the class of the file stream to remove selective handlers:
for handler in logger:
if handler.__class__.__name__ == 'FileHandler':
logger.removeHandler(handler)
Upvotes: 3