Сохранение консоли в файл
Как сохранить АБСОЛЮТНО все строки, которые выводятся в консоли? logging не позволяет это сделать, она только сохраняет служебные сообщения, в обход ошибкам, принтам и тд
Ответы (2 шт):
Не буду переубеждать, но логгинг - единственное правильное, протестированное и удобное решение сохранять все сообщения для приложения в файл. Все остальное - костыли, за исключением крайних случаев.
Первое, что надо сделать, это отказаться от print и использовать для этой функциональности уровень debug или info сущности logging.
Ошибки, исключения логгируются с помощью error и exception соответственно.
Второе, создать удобную конфигурацию логгирования, чтобы в консоль и в файл вы получали релевантную и если необходимо одинаковую информацию в едином формате, который вы так же можете определить.
Можно использовать перенаправление.
Допустим, у нас есть файл program.py и нам нужно сохранить его вывод в файл program_output.txt:
- Стандартный вывод:
python program.py > program_output.txt - Ошибки:
python program.py 2> program_output.txt - Всё вместе:
python program.py > program_output.txt 2>&1