题
当我编写了我的申请释放模式,我发现,该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
不隶属于 StackOverflow