Pythonスクリプトがあります。SimpleLogger
assys.stdout
がありますoutput_stream
。
logger = SimpleLogger(level=LogLevel.DEBUG)
コンソールで実行するとログが正しく表示されますが、出力をファイルにリダイレクトするたびにターゲットに何も見つかりません。
私はいくつかのアプローチを試しました。
- python server.py > /tmp/x.log 2>&1
- Python server.py > /tmp/x.log
どちらの場合も/tmp/x.log
空です。
私も試してみましたが、nohup python server.py
何も書いていませんでしたnohup.out
。
答え1
これはバッファリングによるものかもしれません。十分な出力が蓄積されている場合にのみ、ファイルに内容が表示されます。 Pythonで説明されているように、バッファリングされpython -u
ていない出力を要求したり、空でPYTHONUNBUFFERED=
ない文字列で環境変数を設定したりできます。コマンドライン文書化するか、各通貨または.flush()
同様.debug()
の通貨の後に通貨を追加します。