Newb python вопрос. Я читал на tee() и различные способы разделения результатов. Но я не могу найти хороший пример для разделения вывода на терминал и на файл журнала. Я играл вокруг с некоторыми вариантами, и это то, что я до сих пор:Python - Как разделить выход?
def logname():
env.warn_only = True
timestamp = time.strftime("%d_%b_%Y")
return "%s_%s" % (env.host_string, timestamp)
sys.stdout = open('/home/path/to/my/log/directory/%s' % logname(), 'w')
выше будет записываться в файл с принимающей name_datestamp но ничего на экране не буду отображаться. Затем, когда я хочу, чтобы остановить запись я сделать:
sys.stdout = sys.__stdout__
Как я могу войти в мой файл с Definiton выше и отображения на терминал в то же время? Я на правильном пути с тройником()?
'tee()' работает для итераций (данные * производители *) не для потоков файлов (данные * потребители *, действительно). Используйте модуль ['logging'] (http://docs.python.org/2/library/logging.html), чтобы обрабатывать ведение журнала и настраивать его для входа в файловую систему и на терминал. –
В «возможном дубликате» есть несколько хороших ответов, на которые указал AaronD, включая ответ, который я только что опубликовал;) – shx2