gpt4 book ai didi

Python 记录器动态文件名

转载 作者:太空狗 更新时间:2023-10-29 21:14:53 27 4
gpt4 key购买 nike

我想以这样一种方式配置我的 Python 记录器,以便记录器的每个实例都应该记录一个与记录器本身同名的文件。

例如:

log_hm = logging.getLogger('healthmonitor')
log_hm.info("Testing Log") # Should log to /some/path/healthmonitor.log

log_sc = logging.getLogger('scripts')
log_sc.debug("Testing Scripts") # Should log to /some/path/scripts.log

log_cr = logging.getLogger('cron')
log_cr.info("Testing cron") # Should log to /some/path/cron.log

我想保持它的通用性,不想对我可以拥有的所有类型的记录器名称进行硬编码。这可能吗?

最佳答案

如何简单地将处理程序代码包装在一个函数中:

import os
def myLogger(name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(os.path.join('/some/path/', name + '.log'), 'w')
logger.addHandler(handler)
return logger

log_hm = myLogger('healthmonitor')
log_hm.info("Testing Log") # Should log to /some/path/healthmonitor.log

为防止创建重复的处理程序,需要注意确保每个 name 仅调用一次 myLogger(name)。通常这意味着将 myLogger(name) 放入

if __name__ == '__main__':
log_hm = myLogger('healthmonitor')

主脚本。

关于Python 记录器动态文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754126/

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