zoukankan      html  css  js  c++  java
  • log4net不能记录日志,IsErrorEnabled值为false

    在项目中建立log4net.config文件,内容如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net"
                 type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"/>
      </configSections>
    
      <log4net>
      <root>
          <level value="WARN" />
          <appender-ref ref="LogFileAppender" />
          <!--<appender-ref ref="ConsoleAppender" />-->
        </root>
    
        <logger name="testApp.Logging">
          <level value="DEBUG"/>
        </logger>
    
        <appender name="LogFileAppender"
                 type="log4net.Appender.FileAppender" >
          <param name="File" value="log-file.txt" />
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <!--<param name="Header" value="[Header]\r\n"/>
            <param name="Footer" value="[Footer]\r\n"/>-->
            <param name="ConversionPattern"
               value="%d [%t] %-5p %c [%x]  - %m%e%n"
             />
          </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="ERROR" />
          </filter>
        </appender>
    
        <!--<appender name="ConsoleAppender"
                  type="log4net.Appender.ConsoleAppender" >
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern"
               value="%d [%t] %-5p %c [%x] - %m%n"
            />
          </layout>
        </appender>-->
    
      </log4net>
    </configuration>
    

    Properties下面的AssemblyInfo.cs中加入[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

    PS:1)如不写ConfigFile = "log4net.config",IsErrorEnabled也会为false

            2)log4net.Config.XmlConfigurator(ConfigFileExtension ="mylogger", Watch =true)]如果你的应用名称为test.exe,那么log4net的配置文件名为test.exe.mylogger。且ConfigFileExtension与ConfigFile只能二者择一。

          3)assembly一句也可以写到program等其他程序入口处。

           4)%e即%exception,这样才能记录catach捕获的ex异常消息。

    程序中如下调用:

    if (log.IsErrorEnabled)               

    log.Error("Page Load failed : " + ex.Message);

    但是总是不能记录日志,且IsErrorEnabled总为false。

    解决:将log4net.config文件放到bin下的debug目录下。或者设置log4net.config文件为始终复制。

  • 相关阅读:
    python笔记005-字符串-列表-元组
    Python笔记2 标准数据类型
    VS2010与VAssistX
    【Windows核心编程】Windows常见数据类型
    网络安全加密
    防御 XSS 的七条原则
    用户权限初略设计
    [Android]Handler的消息机制
    java的线程中的Runnable
    [转]永久告别Android的背景选择器Selector!无需切很多图了!
  • 原文地址:https://www.cnblogs.com/ttssrs/p/2431179.html
Copyright © 2011-2022 走看看