Logs

python腳本輸出不會被定向到文件

  • September 1, 2018

我有一個 python 腳本。它有一個SimpleLoggerwith sys.stdoutas output_stream

logger = SimpleLogger(level=LogLevel.DEBUG)

當我在控制台中執行它時,我得到了正確的日誌,但是每當我將輸出重定向到一個文件時,在目標中找不到任何東西。

我嘗試了多種方法:

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

在這兩種情況下,/tmp/x.log都是空的。

我也試過nohup python server.py了,但是什麼都沒有寫進去nohup.out

這可能只是由於緩衝。只有在積累了足夠的輸出後,您才會在文件中看到某些內容。您可以嘗試使用python -u來請求無緩衝的輸出,或將環境變數設置PYTHONUNBUFFERED=為任何非空字元串,如 Python命令行.flush()文件中所述,或者在每次.debug()或類似呼叫之後添加呼叫。

引用自:https://unix.stackexchange.com/questions/466186