2009-04-29 260 views
4

当我以释放模式编译我的应用程序时,我发现Log4Net仍然记录调试信息;任何想法如何解决这个问题?在Log4net中关闭调试日志记录

这是我的app.config文件:

<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> 

我错过了什么?

+0

颇有些重叠,以这样的:http://stackoverflow.com/questions/641240/changing-the-log4net-root-level-when-app-is-built-as-release – svrist 2011-01-04 14:49:26

回答

14

您的App.Config文件中没有任何内容告诉log4net在发布或调试模式下执行不同的操作。如果您希望日志记录在两个版本之间不同,则必须在两个版本之间更改配置文件。

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

注:之间的区别您的发布和调试App.Config中会在调试版本以下行

<level value="DEBUG" /> 

与在下面一行发布版本(或者当然你可以选择ERROR或FATAL,如果你想的话):

<level value="INFO" /> 
4

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

<level value="WARN" />