Перенаправление вывода 'print' Python в Logger

У меня есть сценарий Python, который использует «Печать» для печати на стандартный вывод. Недавно я добавил ведение журнала через Python Logger и хотел бы сделать так, чтобы эти операторы печати отправлялись в регистратор, если ведение журнала включено. Я не хочу изменять или удалять эти операторы печати.

Я могу войти, выполнив 'log.info("some info msg")'. Я хочу иметь возможность сделать что-то вроде этого:

if logging_enabled:
  sys.stdout=log.info
print("test")

Если ведение журнала включено, "тест" должен быть зарегистрирован, как если бы я сделал log.info("тест"). Если ведение журнала не включено, «тест» должен быть просто напечатан на экране.

Возможно ли это? Я знаю, что аналогичным образом могу направить стандартный вывод в файл (см.: перенаправить отпечатки в файл журнала )

25
задан Community 23 May 2017 в 12:25
поделиться