【问题标题】:How do I configure log4net so that log.IsDebugEnabled is true?如何配置 log4net 以使 log.IsDebugEnabled 为真?
【发布时间】:2008-10-20 21:30:18
【问题描述】:

我正在尝试在带有 Visual Studio 2005 的 ASP.NET 应用程序中使用 log4net。我已经声明了一个记录器实例,如下所示:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

我正在尝试以下列方式使用它:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

这是我的配置:

<log4net>

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

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

不幸的是,log.IsDebugEnabled 总是错误的。
如何配置 log4net 以便仅记录调试消息?

【问题讨论】:

    标签: vb.net debugging configuration log4net


    【解决方案1】:

    在调用 LogManager.GetLogger("")之前

    你必须调用 log4net.Config.XmlConfigurator.Configure(); 在 ASP.NET 应用程序中,您可能希望将此调用放在 Application_Start 中

    【讨论】:

      【解决方案2】:

      是的,按照安森说的去做。此外,如果您在类库中调用配置,您可以通过向您的类添加一个属性来做到这一点:

      [assembly: XmlConfigurator(Watch = true)]
      

      如果您使用的是log4net.config 文件,请改为使用它:

      [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
      

      【讨论】:

        【解决方案3】:

        如果您为 log4net 使用单独的配置文件,请执行以下操作:按照所有其他设置说明进行操作后,确保您在 Visual Studio 解决方案资源管理器中右键单击该文件,选择属性,展开“高级”选项组,将“复制到输出目录”值设置为“始终复制”。那会变魔术... :) 干杯!!

        【讨论】:

          【解决方案4】:

          如果您在代码中而不是在配置文件中设置 log4net,您可以在 GetLogger 之前调用 log4net.Config.BasicConfigurator.Configure

          【讨论】:

            【解决方案5】:

            VB.NET -

            <Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 
            

            【讨论】:

              【解决方案6】:

              在使用 log 之前在任何方法中使用它:

              log4net.Config.XmlConfigurator.Configure();

              在 App.Config 中,设置应该是:

              <root>
                    <level value="ALL" />
                    <appender-ref ref="AppenderName" />
                  </root>
              

              【讨论】:

                猜你喜欢
                • 2011-01-27
                • 2016-11-09
                • 1970-01-01
                • 1970-01-01
                • 2011-07-30
                • 2015-02-11
                • 1970-01-01
                • 1970-01-01
                • 2010-10-20
                相关资源
                最近更新 更多