4

我的应用程序使用了几个附加程序——一个FileAppender、、MemoryAppenderAdoNetAppender。我有一个重置日志的命令,以便按需创建一个新文件。这很好用——我只是调用log4net.LogManager.GetRepository().Shutdown().

我还同时登录到MemoryAppender,并且我有一个计时器,可以将事件从 appender 中拉出并将它们显示在日志窗口中。当我使用上述重置功能时,日志窗口停止显示消息,因为没有更多事件被记录。

对于FileAppender,我能够通过ActivateOptions在设置正确的文件名后调用它来重新开始记录。我已经调用ActivateOptionsMemoryAppender,但这并没有让它再次开始记录。在调用之前ActivateOptions,我已经查看了对象以确保它已经被配置。它实际上保留了我调用重置函数时的配置,所以看起来没问题。

我也在网上搜索过,有人说你只需要打电话log4net.Config.DOMConfigurator.Configure(已弃用——现在是 log4net.Config.XmlConfigurator.Configure`),但这也没有用。

在支持文件、内存和 Ado 附加程序的同时,是否有另一种方法可以尝试关闭/重新启动日志记录?

4

1 回答 1

2

Shutdown我认为你可以通过不调用该方法得到你想要的。只需在 appender 上设置一个新文件名并调用ActivateOptions. 这将关闭旧的日志文件并打开新的...

于 2011-10-25T20:54:04.220 回答