Итак, я полагаю, что эта проблема может быть применена к любому файлу Python, генерирующему журналы для консоли.
Я пытаюсь захватить вывод, сгенерированный во время выполнения теста поведения (весь код находится в python3.x).
Или точнее: я пытаюсь записать сгенерированный в реальном времени вывод консоли в файл для конкретной функции, представляющей интерес в коде Python.
Моя цель - записать журналы консоли, напечатанные (на stdout
) в тот момент, когда она попадает в определенную функцию в коде Python.
Я обычно делаю behave data_base_scenarios.feature
без кавычек в Ubuntu18,04.Я хотел бы захватить весь вывод, как он направлен на консоль в файл.
В StackOverflow, после поиска некоторое время, я попробовал некоторые из методов, описанных здесь: Захват stdout в том жепроцесс в Python .Я также нашел это: https://capturer.readthedocs.io/en/latest/
К сожалению, я не вижу ничего захваченного.Я позаботился о настройке среды поведения для создания журналов.Например, все эти флаги установлены соответствующим образом и явно для генерации выходных данных: context.config.stdout_capture = True
, context.config.log_capture = True
.Что мне не хватает в поведенческой среде.
Платформа поведения также предоставляет переменную внутри контекста.Его "context.stdout_capture".Но, к сожалению, он ничего не содержит.
Короче говоря, "Behave" печатает на консоли
Captured logging:
INFO:database.system.status: MyDatabase is online.
INFO:database.system.status: MyDatabase is now offline.
INFO:database.system.status: MyDatabase has now initiated.
Я просто хочу вывести вышеупомянутый вывод консоли "Captured Logging" в файл для анализа.
Как я могу это сделать?Пожалуйста, дайте мне знать.