Python日志记录在使用removeHandler删除它时会通知处理程序吗?

2024-05-19 09:14:03 发布

您现在位置:Python中文网/ 问答频道 /正文

生成处理程序,这意味着处理程序在运行时才正确。在

我要做的是:

  • 创建文件
  • 写一个序言(一个<Diag>元素开头)
  • 每个日志记录都会在xml中产生一个<line />元素
  • 停止日志记录意味着将</Diag>元素写得更近一些。在

如果Logger.removeHandler会在被删除的处理程序中调用一些特殊回调,但我找不到任何回调。也许它不在那里。。。在


Tags: 文件处理程序元素记录linexmlloggerdiag
1条回答
网友
1楼 · 发布于 2024-05-19 09:14:03

在记录器中添加或删除处理程序时,不通知。记录器使用处理程序,但处理程序对记录器一无所知。在

但是,处理程序有一个close()方法,该方法在程序退出时由logging.shutdown()(注册到atexit)调用,因此您可以在那里添加逻辑。只需记住调用基本实现的close()以确保正确的内务处理:

class MyHandler(logging.Handler):

    def close(self):
       # Write XML epilog.
       # ...
       super(MyHandler, self).close()

相关问题 更多 >

    热门问题