2012-02-14 2 views
2

코드를 너무 많이 파고 파이썬의 로깅 모듈 (이 코드는 waf가 사용하는 것으로 보여짐)에 대해 배우기 전에 누군가이 질문에 대한 빠른 대답을 알고 있는지 알 수있을 것이라고 생각했습니다. 내 콘솔/터미널에 빌드의 출력물을 표시하고 파일에 기록하도록하고 싶습니다. 윈도우 환경에서 (불행히도) 나는 멋진 색칠 된 텍스트를 잃어 버리기 때문에 차라리 mtee를 사용하지 않을 것입니다. 내가 알지 못하는 waf와 함께 내장되어 있습니까?출력을 파일에 기록하고 waf가있는 콘솔/터미널에 표시하는 방법이 있습니까?

답변

1

당신은 그 표준 출력뿐만 아니라 로그 파일에 인쇄 할 수 있습니다

import sys, logging 
from waflib import Logs 
bld.logger = Logs.make_logger('test.log', 'build') 
hdlr = logging.StreamHandler(sys.stdout) 
formatter = logging.Formatter('%(message)s') 
hdlr.setFormatter(formatter) 
bld.logger.addHandler(hdlr) 
+0

에 할당'bld.logger'은 (Context.exec_command의 인수의 출력을 가능하게 같은) 부작용이 –

관련 문제