2016-08-17 81 views
1

過去我使用了log4j(v。1),很高興知道對該項目進行了重大重構,導致log4j 2解決了以下問題:困擾版本1.使用log4j 2寫入數據文件或數據庫表

我想知道是否可以使用log4j 2寫入數據文件,而不僅僅是日誌文件。

我將很快開發的應用程序需要能夠接收來自不同來源的許多事件,並將它們以非常快的速度寫入數據文件或數據庫(我還沒有確定它)。

在嘗試寫入事件時,接收事件的線程不能被I/O阻塞,所以基於LMAX Disruptor庫的log4j2的異步記錄器絕對適合這種情況。

此外,當分別寫入數據文件或數據庫表時,我的應用程序必須能夠從'磁盤空間不足'或'無法達到數據庫'條件恢復。換句話說,當應用程序磁盤空間不足或數據庫暫時不可用時,我的應用程序需要將事件存儲在內存中,並等待存儲器可用,並在存儲時將所有等待事件寫入磁盤或數據庫。

你認爲我可以用log4j做到這一點嗎?

非常感謝您的幫助。

問候, 努諾·格雷羅

回答

1

是。

我知道在類似場景中至少有一個生產實現,其中收集事件以高吞吐量寫入磁盤。

寫入系統卷以外的卷,以最大限度地減少由於磁盤空間溢出而導致系統崩潰的可能性。

前期容量規劃有助於確保具有足夠資源的硬件配置,以在合理的時間內處理預計的平均負載和突發。

不要讓系統用完磁盤空間:)。跟蹤磁盤使用情況,並在極端情況下主動刪除舊數據。