Форум сайта python.su
0
Подскажите как это можно осуществить? Нашел пример только на перенаправление:
log_stream = open("1.log", 'a');
STDOUT = sys.stdout.fileno()
#получили новый файловый объект с новым дескриптором > 2, но по прежнему указывающий на открытый файл терминала
new_base_stdout_d = os.dup(STDOUT)
base_stdout = os.fdopen(new_base_stdout_d, 'w')
#теперь на дискрипторе STDOUT откроем файловый объект(а верее, просто сдублируем дескриптор уже открытого файла), а старый поток закроем
os.dup2(log_stream.fileno(), STDOUT)
log_stream.close()Офлайн
-2
В юниксе искаропки
program | tee logfile
Офлайн
221
А может использовать модуль logging?
ну или ручками, делаете свой класс метод которого пишет полученную строку в файл и в stdout
Офлайн
0
JOHN_16
А может использовать модуль logging?
ну или ручками, делаете свой класс метод которого пишет полученную строку в файл и в stdout
class Logger(object):
def __init__(self):
self.terminal = sys.stdout
self.log = open(name_source+".log", "a")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
Офлайн
-2
Через add_stream() :) или через коструктор.
Офлайн