有没有办法配置python记录器来调用自定义函数,并在每次loggs时将日志消息传递给它? 谢谢!
答案 0 :(得分:1)
子类logging.Handler
并实现emit
方法:
import logging
class MyHandler(logging.Handler):
def emit(self, record):
print('custom handler called with\n ', record)
logger = logging.getLogger(__name__)
logger.addHandler(MyHandler()) # or: logger.handlers = [MyHandler()]
logger.warn('Log 1')
logger.warn('Log 2')
custom handler called with
<LogRecord: __main__, 30, /home/jan/Dropbox/py/so_logging.py, 9, "Log 1">
custom handler called with
<LogRecord: __main__, 30, /home/jan/Dropbox/py/so_logging.py, 10, "Log 2">
如果覆盖了logging.Handler
的{{1}},请确保对其进行调用。
适用于__init__
模块的标准警告: