我的应用程序使用了几个附加程序——一个FileAppender
、、MemoryAppender
和AdoNetAppender
。我有一个重置日志的命令,以便按需创建一个新文件。这很好用——我只是调用log4net.LogManager.GetRepository().Shutdown()
.
我还同时登录到MemoryAppender
,并且我有一个计时器,可以将事件从 appender 中拉出并将它们显示在日志窗口中。当我使用上述重置功能时,日志窗口停止显示消息,因为没有更多事件被记录。
对于FileAppender
,我能够通过ActivateOptions
在设置正确的文件名后调用它来重新开始记录。我已经调用ActivateOptions
了MemoryAppender
,但这并没有让它再次开始记录。在调用之前ActivateOptions
,我已经查看了对象以确保它已经被配置。它实际上保留了我调用重置函数时的配置,所以看起来没问题。
我也在网上搜索过,有人说你只需要打电话log4net.Config.DOMConfigurator.Configure
(已弃用——现在是 log4net.Config.XmlConfigurator.Configure`),但这也没有用。
在支持文件、内存和 Ado 附加程序的同时,是否有另一种方法可以尝试关闭/重新启动日志记录?