gpt4 book ai didi

Python 日志记录不会关闭

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:55 25 4
gpt4 key购买 nike

我一直在学习 python 日志记录模块,但在完成后让日志记录关闭时遇到了问题。这是一个例子-

import logging

log = logging.getLogger()
log.setLevel(logging.INFO)
handler = logging.FileHandler('test.log')
handler.setLevel(logging.INFO)
formatter = logging.Formatter(
fmt='%(asctime)s %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
handler.setFormatter(formatter)
log.addHandler(handler)

log.info('log file is open')
logging.shutdown()
log.info('log file should be closed')

但模块在 logging.shutdown() 之后仍在记录,因为日志文件如下所示 -

# cat test.log
2014-07-17 19:39:35 INFO: log file is open
2014-07-17 19:39:35 INFO: log file should be closed

根据文档,此命令应该“通过刷新和关闭所有处理程序来执行有序关闭”。我应该做其他事情来关闭日志文件吗?

最佳答案

所以我发现使用 shutdown() 并没有完全消除用于日志记录的文件处理程序。最好的方法似乎是手动删除文件处理程序 -

def main():
log = logging.getLogger()
log.setLevel(logging.INFO)
fh = logging.FileHandler(filename='test.log')
fh.setLevel(logging.INFO)
formatter = logging.Formatter(
fmt='%(asctime)s %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
fh.setFormatter(formatter)
log.addHandler(fh)

log.info('-------Start--------')
log.info('this function is doing something')
log.info('this function is finished')
log.removeHandler(fh) <--------------------------Add this line
del log,fh

关于Python 日志记录不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24816456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com