guy*_*y.S 9 python logging python-2.7
有没有办法配置python记录器来调用自定义函数并在它记录时将日志消息传递给它?谢谢!
xjc*_*jcl 11
子类化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.warning('Log 1')
logger.warning('Log 2')
Run Code Online (Sandbox Code Playgroud)
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">
Run Code Online (Sandbox Code Playgroud)
正在记录的特定消息可以作为record.msg(未格式化的字符串)或self.format(record)(格式化的字符串,如果您添加了时间戳或日志级别)进行访问
另外:如果您还重写了 的logging.Handler方法__init__,那么在子类中对其进行 super 调用很重要。
该模块的标准警告logging适用:
| 归档时间: |
|
| 查看次数: |
1939 次 |
| 最近记录: |