当我编写了我的申请释放模式,我发现,该Log4Net仍然记录"调试"的信息;任何想法如何解决这个问题?

这是我的应用程序。配置文件:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>

  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:\Documents and Settings\test\Application Data\Log.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} - %m%n" />
      </layout>
    </appender>
  </log4net>

我错过什么了吗?

有帮助吗?

解决方案

有没有在你的程序。配置文件告诉log4net做不同的事情中释或者调试模式。如果你想要记录是不同的两者之间建立的,你要改变你的配置文件之间的两个版本。

你最好的选择可能是创建一个应用程序。配置,用于释放,一个用于调试,然后按照建议在计算器问题:

注:之间的差异释放和调试的应用程序。配置将以下行"调试"的版本

<level value="DEBUG" />

对以下行版本(或者当然,你可以选择上的错误或致命的,如果你想要的):

<level value="INFO" />

其他提示

也许尝试这样的事情呢?设置为您希望接收的最低级别。

<level value="WARN" />

如果你的App.Config看起来像这样:

    <root>
      <level value="Info" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="RollingFileAppender" />
    </root>

您可以按代码修改日志级别(将代码放在Program.cs中):


#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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top