在Log4net中发布期间关闭调试日志记录

在Log4net中发布期间关闭调试日志记录,log4net,Log4net,当我在发布模式下编译我的应用程序时,我发现Log4Net仍然记录调试信息;你知道怎么解决这个问题吗 这是我的App.Config文件: 我错过了什么吗?在你的App.Config文件中没有任何东西可以告诉log4net在发布或调试模式下做不同的事情。如果希望两个版本之间的日志记录不同,则必须更改两个版本之间的配置文件 您最好的选择可能是创建一个App.Config用于发布,一个用于调试,然后按照StackOverflow问题中的建议进行操作: 注意:在调试版本中,您的发行版和debug

当我在发布模式下编译我的应用程序时,我发现Log4Net仍然记录调试信息;你知道怎么解决这个问题吗

这是我的App.Config文件:



我错过了什么吗?

在你的App.Config文件中没有任何东西可以告诉log4net在发布或调试模式下做不同的事情。如果希望两个版本之间的日志记录不同,则必须更改两个版本之间的配置文件

您最好的选择可能是创建一个App.Config用于发布,一个用于调试,然后按照StackOverflow问题中的建议进行操作:

注意:在调试版本中,您的发行版和debug App.Config之间的差异如下所示

<level value="DEBUG" />

相对于发布版本中的以下行(当然,如果需要,您可以选择错误或致命):


也许可以试试这样的方法?设置为您希望接收的最低级别

<level value="WARN" />

如果您的App.Config如下所示:

    <root>
      <level value="Info" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="RollingFileAppender" />
    </root>
与此有相当多的重叠:
    <root>
      <level value="Info" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="RollingFileAppender" />
    </root>

#if DEBUG
            log4net.Repository.ILoggerRepository RootRep;
            RootRep = LogManager.GetRepository(Assembly.GetCallingAssembly());

            XmlElement section = ConfigurationManager.GetSection("log4net") as XmlElement;

            XPathNavigator navigator = section.CreateNavigator();

            XPathNodeIterator nodes = navigator.Select("root/level");
            foreach (XPathNavigator appender in nodes)
            {
                appender.MoveToAttribute("value", string.Empty);
                appender.SetValue("Debug");
            }

            IXmlRepositoryConfigurator xmlCon = RootRep as IXmlRepositoryConfigurator;
            xmlCon.Configure(section);
#endif