В моем приложении 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__)
Нужно ли что-то изменить, чтобы заставить его регистрироваться в правильном месте?
Желаемая структура: