Сохранение консоли в файл
Как сохранить АБСОЛЮТНО все строки, которые выводятся в консоли? logging не позволяет это сделать, она только сохраняет служебные сообщения, в обход ошибкам, принтам и тд
Как сохранить АБСОЛЮТНО все строки, которые выводятся в консоли? logging не позволяет это сделать, она только сохраняет служебные сообщения, в обход ошибкам, принтам и тд
Не буду переубеждать, но логгинг - единственное правильное, протестированное и удобное решение сохранять все сообщения для приложения в файл. Все остальное - костыли, за исключением крайних случаев.
Первое, что надо сделать, это отказаться от 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