2011-07-15 61 views
0

我有我一次運行的測試,一次最多可能需要15m。在這15米期間,會定期寫入日誌文件。然而,大部分內容是無用的。無限期地運行python腳本(作爲一個進程,非常多)

迴應此,我有一個python腳本解析出無用的文本並顯示相關數據。

我試圖實現的是類似於什麼tail -f log_file,不斷更新終端與最新的文件添加。我在想,如果一個python腳本作爲一個進程運行,它可以在測試寫入日誌文件時解析日誌文件,然後python腳本可以進入休眠狀態,直到日誌文件寫入後再次中斷爲止。

任何想法如何實現這一目標?

我已經有一個腳本來解析,我只是不知道如何使它不斷和有效地做到這一點。

+1

什麼平臺取得了巨大成功? –

+0

使用的Mac OSX – tipu

回答

3

你可以只是腳本過濾標準輸入,並通過管道tail -f。當你在等待stdin時,你的腳本會睡覺,所以它效率很高。

例如,

python long_running_script.py && tail -f log_file | python filter_logs.py 

你的腳本可以像

while true: 
    line = sys.stdin.readline() 
    if filter_line(line): print line 
+0

等待等待等待我可以直接將結果輸入到python腳本中,而不是以日誌文件開始? – tipu

0

任何想法如何能實現這一目標?

這應該很容易做到。你想要的大部分已經是你的操作系統的一部分。

python test.py | python log_parser.py 

確保您的測試將他們的日誌寫入標準輸出而不是其他文件。對於日誌配置的小改動通常很容易做到。

3

看起來像你需要像「pytailer」: ​​3210

雖然我從來沒有用它自己,最後一個例子看起來像你想要什麼。

相關問題