在调用Shutdown()后重新启动log4net内存附加程序
本文关键字:内存 log4net 程序 重新启动 调用 Shutdown | 更新日期: 2023-09-27 18:12:17
我的应用程序使用了几个追加器——FileAppender
、MemoryAppender
和AdoNetAppender
。我有一个命令来重置日志,以便根据需要创建一个新文件。这非常有效——我只调用log4net.LogManager.GetRepository().Shutdown()
。
我还同时记录到MemoryAppender
,并且我有一个计时器,将事件从appender中取出并显示在日志窗口中。当我使用前面提到的重置功能时,日志窗口停止显示消息,因为没有更多的事件被记录。
对于FileAppender
,我能够通过在设置适当的文件名后调用ActivateOptions
使其再次开始记录日志。我在MemoryAppender
上调用了ActivateOptions
,但这并没有让它再次开始记录日志。在调用ActivateOptions
之前,我已经查看了对象,以确保它已经配置好了。它实际上保留了我调用重置函数时的配置,所以看起来不错。
我也在网上搜索过,人们说你只需要调用log4net.Config.DOMConfigurator.Configure
(已弃用-现在它是log4net.Config.XmlConfigurator.Configure '),但这也不起作用。
是否有另一种方法,我可以尝试关闭/重新启动日志记录,同时支持文件,内存和Ado追加程序?
我认为你得到你想要的不调用Shutdown
方法。只需在appender上设置一个新文件名并调用ActivateOptions
。这将关闭旧的日志文件并打开新的日志文件。