Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用dictConfig配置将日志文件保存到子目录中?_Python 3.x_Logging - Fatal编程技术网

Python 3.x 如何使用dictConfig配置将日志文件保存到子目录中?

Python 3.x 如何使用dictConfig配置将日志文件保存到子目录中?,python-3.x,logging,Python 3.x,Logging,我的Python 3.6应用程序中有以下配置: config = { "version": 1, "disable_existing_loggers": False, "formatters": { "standard": { "format": ("[%(asctime)s] %(levelname)s - %(threadName)s - %(name)s - %(message)s") }, },

我的Python 3.6应用程序中有以下配置:

config = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "standard": {
            "format": ("[%(asctime)s] %(levelname)s - %(threadName)s - %(name)s - %(message)s")
        },
    },
    "handlers": {
        "default": {
            "class": "logging.StreamHandler",
            "formatter": "standard",
            "level": DEFAULT_LOG_LEVEL,
        },
        "fh": {
            "class": "logging.handlers.RotatingFileHandler",
            "formatter": "standard",
            "level": FILE_LOG_LEVEL,
            "filename": "myfile.log",
            "maxBytes": 1024*1000,  # 1 MB
            "backupCount": 20
        }
    },
    "loggers": {
        '': {
            "handlers": ["default", "fh"],
            'level': DEFAULT_LOG_LEVEL,
            'propagate': True
        }
    }
}
这一点目前正在发挥作用;但是,它会将所有.log文件保存到当前工作目录(可执行文件位于Windows上)

我想做的是让它将其保存到“logs”目录中,该目录与可执行文件本身处于同一级别,并且已经存在

我的想法是在日志配置中修改“filename”属性,但我不确定这对使用以下内容的脚本文件有何影响:

logger = logging.getLogger(__name__)
为了让它记录到正确的位置,还需要修改它吗

所需结构:

  • app.exe
  • 日志
    • myfile.log

我最初的想法似乎是在测试后做我需要的事情。我只是将目录名放在配置的“filename”属性值的文件名前面。不需要修改脚本的记录器行