gpt4 book ai didi

python - python 记录器配置文件中 FileHandler 的动态文件路径和文件名

转载 作者:太空狗 更新时间:2023-10-29 17:17:22 24 4
gpt4 key购买 nike

我有一个 python 日志配置文件,其中包含以下形式的文件处理程序。

[handler_filelog]
class: FileHandler
args = ('/var/tmp/log/client.log','a')

相反,我需要以下形式(动态生成的路径)。

[handler_filelog]
class: FileHandler
args = ('/var/tmp/log_<unique_string>/client.log','a')

程序的多个实例可能正在运行,因此将使用不冲突的日志路径和文件。记录器一旦设置就不需要更改,直到程序执行结束。

有没有办法使用配置文件方法来处理这个问题?我不热衷于自己创建记录器/处理程序/格式化程序,因为我的日志配置文件有很多这样的东西,基于配置文件的方法要好得多。

(更新:我正在使用 python 2.4)

最佳答案

这就是您所需要的。您应该首先扩展 FileHandler 类。把它放在一个文件中,比如 myHandler.py 在你的配置文件的目录中:

import logging
import random
import os
class myFileHandler(logging.FileHandler):
def __init__(self,path,fileName,mode):
r = random.randint(1,100000)
path = path+"/log_"+str(r)
os.mkdir(path)
super(myFileHandler,self).__init__(path+"/"+fileName,mode)

然后在配置文件中,你可以像这样使用这个自定义的 FileHandler

class: myHandler.myFileHandler
args = ('/var/tmp','client.log','a')

我在我的机器上测试了这个

关于python - python 记录器配置文件中 FileHandler 的动态文件路径和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405890/

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