gpt4 book ai didi

python - 重新开始记录到新文件(Python)

转载 作者:IT老高 更新时间:2023-10-28 21:11:14 25 4
gpt4 key购买 nike

我正在使用以下代码来初始化我的应用程序中的日志记录:

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

# log to a file
directory = '/reserved/DYPE/logfiles'
now = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = os.path.join(directory, 'dype_%s.log' % now)
file_handler = logging.FileHandler(filename)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s %(filename)s, %(lineno)d, %(funcName)s: %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

# log to the console
console_handler = logging.StreamHandler()
level = logging.INFO
console_handler.setLevel(level)
logger.addHandler(console_handler)

logging.debug('logging initialized')

如何关闭当前的日志文件并重新开始记录到新文件?

注意:我不想使用 RotatingFileHandler,因为我想完全控制所有文件名。

最佳答案

如果您想使用 removeHandleraddHandler 可以手动重新分配处理程序,或者,您可以访问 logger.handlers[index_of_handler_here].stream 并手动替换流,但我会推荐前者而不是后者。

logger.handlers[0].stream.close()
logger.removeHandler(logger.handlers[0])

file_handler = logging.FileHandler(filename)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s %(filename)s, %(lineno)d, %(funcName)s: %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

关于python - 重新开始记录到新文件(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296130/

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