Logs
python腳本輸出不會被定向到文件
我有一個 python 腳本。它有一個
SimpleLogger
withsys.stdout
asoutput_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
。
這可能只是由於緩衝。只有在積累了足夠的輸出後,您才會在文件中看到某些內容。您可以嘗試使用
python -u
來請求無緩衝的輸出,或將環境變數設置PYTHONUNBUFFERED=
為任何非空字元串,如 Python命令行.flush()
文件中所述,或者在每次.debug()
或類似呼叫之後添加呼叫。