2009-09-11 39 views
0

我正在使用Google工具箱for Mac的GTMLogger來記錄我正在處理的應用程序中的文件。使用Google工具箱登錄到文件時記錄文件翻轉

我想確定如何在文件變得足夠大時做日誌文件翻轉。

理想情況下,我希望在日誌文件在任何時候最大11個日誌文件達到1 MB時立即生效,但我沒有看到任何內置方式來執行此操作,而且我想知道是否試圖添加它比它的價值更麻煩。

我能想到的稍微簡單一些的選項就是在應用程序啓動時進行此檢查,並在日誌中檢查它是否超過特定大小。當然,如果有人讓應用程序運行一兩個星期(並且由於應用程序的一部分是啓動守護進程,對於那些很少重啓的應用程序來說這是一個確定的可能性),那麼可能會有一個非日誌文件在此期間建立的平均規模(取決於啓用的日誌級別)。

什麼是我最好的選擇在這裏?

回答

1

你擔心只在啓動時檢查可能不夠經常。因此,在啓動時在您的runloop中放置一個計時器,以便立即觸發日誌檢查,然後每隔一兩天觸發一次日誌檢查。如果您的目標是一次只能使用最多1個MiB,即使您一段時間超出限制,它可能並不重要。

你也可以看看log4net如何實現這個功能:就像掛鉤每個Append()檢查是否滿足大小/日期約束一樣簡單,並在必要時調整記錄的文件。詳情請參閱RollingFileAppender source code;從AdjustFileBeforeAppend()開始,然後檢查出RollOverSize()它是Apache:使用源代碼!

+0

我們最終擴展了GTM的日誌記錄以支持這個功能。 –