Как изменить папку журнала по умолчанию для регистрации в Pytest на пользовательскую, используя pytest.ini или yaml - PullRequest
0 голосов
/ 23 апреля 2020

нужна помощь, я хочу настроить свой регистратор из pytest.ini или использовать для этого файл yaml, все было хорошо, кроме одного: папка для файла журнала, жестко запрограммированная в yaml или pytest.ini, если использовать только имя файла, в в этом случае мои файлы журналов сохраняются в тестовой папке, но мне нужно сохранять свои журналы в моей пользовательской папке.

Я не хочу перезаписывать мои установочные файлы.

метод для чтения файл yaml

with open(f'{get_root_path()}\logging.yaml', 'r') as f:
    config = yaml.safe_load(f.read())
    logging.config.dictConfig(config)

yaml

info_file_handler:
    class: logging.handlers.RotatingFileHandler
    level: INFO
    formatter: standard
    filename: folder info.log
    maxBytes: 10485760 # 10MB
    backupCount: 20
    encoding: utf8

pytest.ini

[pytest]
log_cli = 1
log_cli_level = DEBUG
log_cli_format = %(asctime)s [%(levelname)8s]  %(name)s  %(message)s (%(filename)s:%(lineno)s)

log_name = test
log_file = pytest.log
log_file_level = DEBUG
log_file_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_file_date_format=%Y-%m-%d %H:%M:%S

Спасибо.

1 Ответ

1 голос
/ 23 апреля 2020

Вы можете использовать ведение журнала FileHandler для достижения этой цели.

Попробуйте изменить свой метод для чтения файла yaml, как показано ниже:

with open(f'{get_root_path()}\logging.yaml', 'r') as f:
    config = yaml.safe_load(f.read())
    logging.config.dictConfig(config)
    current_log = logging.getLogger()
    fh = logging.FileHandler(os.path.join("you_folder_path", config["info_file_handler"]["filename"]))
    current_log.addHandler(fh)

Здесь config["info_file_handler"]["filename"] даст вам то же имя файла, что и в вашем файле yaml. Так что это создаст тот же файл журнала с именем folder info.log, но в пользовательской папке. Вы можете изменить имя файла, если хотите.

Таким образом, в основном FileHandler определяет файл, в который он регистрируется.

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...