[英]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.