2015-11-17 117 views
1

我有某種Web服務器。它將日誌寫入sys.stdout,該文件被重定向到一個文件。我需要定期清除這個文件,隨着它的增長。我可以只用sys.stdout嗎?Python清除stdout

+0

編號標準輸出是一個輸出流。寫作是你能做的唯一的事情。 –

回答

0

如果你想刷新stdout只需在你的代碼中添加這一行。

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) 
+0

我認爲這可能會導致問題,因爲併發訪問'stdout'。 – bnopne

0

你可以做的是刪除日誌文件:

rm logfile 

或截斷它:

echo -n > logfile 

的Web服務器仍然會使用開放的文件描述符,該文件將仍然是在磁盤上,但無法再通過該文件名訪問。一旦服務器重新啓動(使用相同的重定向),日誌文件將從頭開始創建。

另一種選擇是使用logrotate作爲日誌,它允許您更改正在寫入的日誌文件。