2011-01-12 5 views
1

나는 토네이도와 nginx에서 장고 웹 사이트를 사용하고 있습니다. 파이썬. stderr를 로그 파일로 리디렉션

나는 그럼 난 sys.stderr에 몇 가지 정보를 출력 파이썬 오픈 ID를 사용하고이 토네이도 실행 script (tornading.py)

했다.

결과적으로 IOError가 발생합니다.

어떻게 로깅 패키지를 사용하여 리디렉션 할 수 있습니까?

나는 생각에 대한

f = open("myfile.log", "w") 
sys.stderr = f 

또는

python tornado.py > /dev/null 2>&1 

하지만 그것을 해결하는 가장 좋은 방법은 무엇입니까?

+2

"최상의 방법"은 어떤 의미입니까? – thkala

답변

4

가장 좋은 방법은 openid 라이브러리가 stderr로 인쇄하지 않고 로깅 API와 같은 일종의 로깅 API를 대신 사용하는 것입니다. 타카라 코드를 수정하는 것이 장기적으로 좋지는 않다는 것을 thkala는 동의합니다. 따라서 수정해야하고 openid 작성자에게 수정 사항을 제공해야합니다.

오픈 소스 커뮤니티를 발전시키는 목적으로,이를 해결하는 가장 좋은 방법입니다.

1

셸 리디렉션을 사용하는 것은 솔루션보다 해결 방법이며 스크립트를 시작하는 방법에 따라 항상 가능하지는 않습니다.

그러나 제 3 자 코드를 수정하지 않아도되는 이점이 있습니다. 로컬 수정 - 사소한 변경조차도 - 예를 들어 다음과 같이 결정할 때 중요한 문제가 될 수 있습니다. 업스트림에서 최신 버전으로 코드를 업데이트하십시오.

관련 문제