2012-01-10 117 views
1

我試圖接收插入到我的日誌文件(使用Spring.NET Common Logging)的消息的最後一行。我的第一步是檢索文件的名稱,這是比預期的有點技巧,因爲我無法找到相關的屬性/演員爲此。如何從Spring.Net獲取日誌文件位置/名稱通用日誌記錄

我發現了一些關於如何檢索給定log4net文件讀取器的文件名的文章,但沒有從Spring.NET Common Logging類開始。

收到文件名後,我將使用反向文件讀取器來檢索姓。想知道人們在閱讀文件時的想法,而它可能正在被Common Logging/log4net寫入?

enter image description here

回答

1

您應該能夠打開文件進行讀取,而其仍開放供日誌基礎設施的寫作,但我有點擔心你的計劃來閱讀「最後」行。在您發現需要打開文件的位置以及您設置打開文件以讀取文件的位置之間,可以在日誌文件中寫入一個條目,使您很難獲得所需的行假設它是日誌中的「最後」行。

我正確地認爲這是一種方式來回應一些錯誤條件,然後獲取與該錯誤相關的相關日誌條目?如果是這樣,我建議不要通過閱讀「最後一行」來收集日誌文件中的信息,而是建議您解析搜索正確日誌條目的文件(例如,按日期/時間或其他信息而不是'持續')。

否則,您可能會在簡單的測試場景中獲得正確的日誌條目,但在任何真正的並行負載下都不會在生產系統中獲得正確的日誌條目。只是我在這裏2分...

+0

它實際上不是錯誤條件。他們是記錄消息,我將使用log4net進行記錄,然後我想通過重新讀取文件重播最後一條消息和類似的函數。任何內容都不應該存儲在狀態存儲器中。你說使用日誌記錄基礎設施來獲取文件名,這是我的問題如何得到它,因爲沒有明確的屬性。 – David 2012-01-10 14:37:30