2013-12-12 30 views
1

我正在運行一個python扭曲的應用程序與許多不同的服務,該應用程序的日誌文件是相當擁擠的各種輸出。因此,爲了更好地瞭解某個特定服務中發生了什麼,我想僅將該服務的消息記錄到不同的日誌文件中。但我無法弄清楚如何做到這一點。如何打開扭曲的某些文件的新日誌文件

對於我的申請,我使用一個shell腳本run.sh調用twistd來如下:

twistd --logfile /var/log/whatever/path/mylogfile.log -y myapplication.py 

文件myapplication.py在應用程序啓動的所有服務,其中一個是我的服務感興趣。該服務的所有代碼都在文件myservice.py中。

那麼,有沒有什麼辦法指定一個新的日誌文件,只爲我的服務?當我啓動myservice.py中的一些python代碼的服務時,我是否會在myapplication.py中執行此操作?

回答

0

考慮以下兩個選項:

  • 查看/尾日誌時,所依賴的日誌行的格式做這樣的事情:

tail -f mylogfile.log | grep <something unique like your service name?>

3

已經看出,使用一個以上的日誌文件系統,我會強烈建議你不要去這個方向。

蓋伊的答案聽起來像是更正確的方向。不過,爲了更詳細地考慮,可以考慮使用結構化日誌格式,例如structlog(其包括扭曲集成)提供的格式。

一旦您的日誌文件中的條目結構化,您將有機會構建與它們一起工作的工具。 Guy給出的例子使用grep來查找與您關注的服務相關的事件,這是向這個方向邁出的一步。如果您繼續朝這個方向走,並說每個日誌事件都是(例如)一個json編碼的對象,那麼您可以分析每一行並將任意複雜的過濾邏輯應用於對象