2017-01-13 1 views
2

Скажем, у меня есть сценарий, как в следующем, и я не могу изменить его:питон каротаж: отправка StreamHandler в файл из командной строки

import logging 

logger = logging.getLogger('simple_example') 
logger.setLevel(logging.DEBUG) 

handler = logging.StreamHandler() 

logger.addHandler(handler) 

logger.debug('debug log') 
logger.info('info log') 
logger.warning('warning log') 
logger.error('error log') 

позже я называю этот сценарий с:

python log_example.py > file.log 

Но он не заполняет файл file.log, а выводит журналы в консоли.

Q: Есть ли способ, несмотря на настройки обработчика протоколирования StreamHandler, по-прежнему выводить журналы в файл из командной строки?

ответ

2

Пробуйте &> синтаксис, как в ответе Pijnappel на this question. Это перенаправляет все выходные данные (не только stdout) в файл.

python log_example.py &> file.log 
+0

omg, все, спасибо, это сработало! – eLRuLL