繁体   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