我在afile.py
文件中有一个记录器,配置如下:
logcurrent = logging.getLogger("app")
logcurrent.setLevel(logging.INFO)
formatter = logging.Formatter(
'%(message)s',
'%d-%m-%Y %I:%M:%S',
)
file_handlerCurrent = logging.handlers.WatchedFileHandler(
'/var/log/app.log'
)
file_handlerCurrent.setLevel(logging.INFO)
file_handlerCurrent.setFormatter(formatter)
logcurrent.addHandler(file_handlerCurrent)
在bfile.py
中,我再次使用重新加载此文件:
每次重新加载执行时,都会添加一个文件处理程序,并多次打印日志。在
我怎样才能避免呢?有没有办法获取处理程序的列表并删除一些?在
是的,有一种方法可以同时获取和修改已用处理程序的列表。
logcurrent.handlers
是已用处理程序的list
,从该列表中删除处理程序也会将其从记录器中删除。在您可以像这样初始化您的记录器:
编辑
方法} ,以检查记录器是否已初始化。但是
logger.hasHandlers()
是new in Python 3.2,如果使用的是python2,则必须返回到^{Boolean([]) == False
,所以您可以直接请求列表。在不过,请注意,
logger.handlers
不是“官方API”的一部分(它不显示in the documentation),无论是python2还是python3,因此它可能会在未经通知的情况下更改。在相关问题 更多 >
编程相关推荐