0
0 комментариев

Мне нужно научить файловые хэндлеры записывать лог-файлы в одну папку, указанную мною.

Использую Python 3.4 и стандартную библиотеку logging. Ниже приведен конфиг логеров в данный момент:

{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "simple": {
            "format": "%(levelname)s : %(asctime)s : %(name)s : %(message)s"
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "DEBUG",
            "formatter": "simple",
            "stream": "ext://sys.stderr"
        },
        "file_handler": {
            "class": "logging.handlers.TimedRotatingFileHandler",
            "level": "INFO",
            "formatter": "simple",
            "filename": "develop.log",
            "encoding": "utf8"
        },
        "debug_file_handler": {
            "class": "logging.handlers.TimedRotatingFileHandler",
            "level": "DEBUG",
            "formatter": "simple",
            "filename": "debugging.log",
            "encoding": "utf8"
        }
    },
    "root" : {
        "level" : "INFO",
        "handlers" : ["console", "file_handler", "debug_file_handler"]
    }
}

Мне хочется чтобы файлы логов складывались в одну папку, к примеру: %APPDATA%\\my-project\\logs\\.

Но сейчас это не так. Файлы складываются в текущую рабочую директорию.

Одно из возможных решений это добавить в поля filename путь до директории с логами. Но мне так не хочется. Меня бы устроило существование поля base_logs_dir на том же уровне, где и поля version и ‘disable_existing_loggers`, но к сожалению такого поля нет!

Как мне решить мою задачку?


Добавить комментарий