Python 스크립트 출력이 파일로 전달되지 않았습니다.

Python 스크립트 출력이 파일로 전달되지 않았습니다.

파이썬 스크립트가 있습니다. SimpleLoggeras sys.stdout가 있습니다 output_stream.

logger = SimpleLogger(level=LogLevel.DEBUG)

콘솔에서 실행하면 로그가 올바르게 표시되지만 출력을 파일로 리디렉션할 때마다 대상에서 아무것도 찾을 수 없습니다.

나는 여러 가지 접근 방식을 시도했습니다.

  1. python server.py > /tmp/x.log 2>&1
  2. 파이썬 server.py > /tmp/x.log

두 경우 모두 /tmp/x.log비어 있습니다.

나도 시도해 보았지만 nohup python server.py아무 것도 쓰여 있지 않았습니다 nohup.out.

답변1

이는 버퍼링 때문일 수도 있습니다. 충분한 출력이 축적된 경우에만 파일에 내용이 표시됩니다. Python에 설명된 대로 python -u버퍼링되지 않은 출력을 요청하거나 PYTHONUNBUFFERED=비어 있지 않은 문자열로 환경 변수를 설정할 수 있습니다 .명령줄문서화하거나 .flush().debug()통화 또는 유사한 통화 후에 통화를 추가합니다.

관련 정보