首页 > 解决方案 > 使用 FileHandler 和 dictConfig 进行 Python 日志记录 - 在“文件名”中使用环境变量?

问题描述

我正在使用dictConfig. 我将配置存储在 json 文件中

{
    "version": 1,
    "disable_existing_loggers": "True",
    "formatters":{
        "default":{            
            "format": "%(levelname)s : %(asctime)s : %(name)s - Bum holes %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S"
        }
    },
    "handlers":{
        "file":{
            "class": "logging.handlers.TimedRotatingFileHandler",
            "when": "midnight",
            "interval": 1,
            "formatter": "default",
            "filename": "Nymus\\Logs\\Logs.log"
        }
    },
    "root":{
        "handlers": ["file"]
    }
}

然后将其传递给logging.config.dictConfig要初始化的。我这样做的原因是将我的记录器配置保存在一个文件中,而不是分散在各处。但是,当涉及到 json 文件中的“文件名”参数时,我遇到了一个问题。我想做的是能够写出类似的东西"filename": "%APPDATA%\\Nymus\\Logs\\Logs/log

这种事情可能吗?我研究了使用args参数将参数传递给“类”中列出的任何内容,但我根本无法让它工作。

标签: pythonjsonlogging

解决方案


推荐阅读