如何禁止在应用程序启动时创建空日志文件?

2024-05-04

我已经在我的应用程序中成功配置了 log4net,但有一件事对我来说有点烦人。

即使没有发生错误,日志文件也会在我的应用程序启动后创建(空)。我想仅在出现错误后才创建日志文件。


我实际上在这个线程中找到了一种方法来做到这一点:

http://www.l4ndash.com/Log4NetMailArchive/tabid/70/forumid/1/postid/18271/view/topic/Default.aspx http://www.l4ndash.com/Log4NetMailArchive/tabid/70/forumid/1/postid/18271/view/topic/Default.aspx

我已经测试了第一种方法,它有效。以防万一该链接不再有效,我将在此处重现代码。基本上,作者指出有两种方法可以做到这一点。

第一种方式:

创建一个新的锁定模型,仅当该记录器的适当阈值有效时才获取锁定(并创建文件)。

public class MyLock : log4net.Appender.FileAppender.MinimalLock
{
      public override Stream AcquireLock()
      {
            if (CurrentAppender.Threshold == log4net.Core.Level.Off)
                  return null;

            return base.AcquireLock();
      }
}

现在在配置文件中,将启动阈值设置为:

<threshold value="OFF" />

并确保在建模时设置这个新的 LockingModel:

<lockingModel type="Namespace.MyLock" />

我将其与滚动文件附加器一起使用。

链接中列出了第二种方法。我还没有尝试过这种技术,但它在技术上似乎是可行的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁止在应用程序启动时创建空日志文件? 的相关文章

随机推荐