簡體   English   中英

在應用程序中實時日志監視,生成日志

[英]Live log monitoring within the application generating the logs

我在.NET中有一個需要登錄的應用程序。 我想記錄某些事件和異常。 我在網上看到強烈建議為此目的推薦使用log4net。 我將其設置為快速開始記錄到txt文件。

但這對我來說還不夠好。 從我的應用程序中,我希望能夠啟動一個監視器,該監視器具有正在生成的所有日志的實時列表。

如果使用log4net的最佳方法呢? 如果沒有,那是什么?

我可以輕松使用日志事件並找到自己的方式來顯示數據,我只是不知道將日志事件發送到監視器表單的最佳方法是什么。

您可能需要查看log2console ,它是與log4net兼容的出色的日志記錄監視器。 它可以偵聽log4net遠程附加程序,並很好地呈現數據。

如果您需要從程序中實現自己的監視器,建議嘗試使用MemoryAppender 這里也有一些有用的信息在這里 (這個問題實際上是一個非常不錯的教程)

如您所見,他設置了兩個附加程序-一個附加程序記錄到文件,另一個附加程序記錄到內存附加程序。 在監視器中,您可以使用以下代碼來獲取附加程序的句柄:

Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
MemoryAppender mappender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;

您可以使用mappender.GetEvents()在后台線程中循環獲取新事件,然后再通過mappender.Clear()清除新事件。 請記住,這不是線程安全的,因此為您的日志記錄創建線程安全包裝器可能是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM