log4net log4Net不能成功生成日志問題(關於配置錯誤)


log4Net不能成功生成日志問題(關於配置錯誤)

調試發現問題原因在於  Log4Net IsInfoEnabled 一直為 false,返回的對象中所有 IsXXX 一直為false,這個問題的原因在於配置文件讀取失敗。

配置方式有兩種:

1、直接在web.config 中配置,可如下 

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

 

<log4net>
    <!-- 設置日志記錄方式 -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender, log4net">
      <param name="File" value="D:\\Senderlog.txt" />
      <param name="AppendToFile" value="false" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
      </layout>
    </appender>
    <!--<appender name="Console"  type="log4net.Appender.ConsoleAppender, log4net">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
      </layout>
    </appender>-->
    <!-- 設置日志記錄級別 -->
    <root>
      <priority value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <!-- Specify the level for some specific namespaces -->
    <!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
    <logger name="Sender" additivity="true">
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </logger>
  </log4net>
View Code

2、直接新建如log4net.config 的配置文件,如下

 
<log4net>
    <!-- 設置日志記錄方式 -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender, log4net">
      <param name="File" value="D:\\Senderlog.txt" />
      <param name="AppendToFile" value="false" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
      </layout>
    </appender>
    <!--<appender name="Console"  type="log4net.Appender.ConsoleAppender, log4net">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
      </layout>
    </appender>-->
    <!-- 設置日志記錄級別 -->
    <root>
      <priority value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <!-- Specify the level for some specific namespaces -->
    <!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
    <logger name="Sender" additivity="true">
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </logger>
  </log4net>
View Code

這兩種配置方法的區別在與讀取配置文件

方法1中讀取方式是這樣的:

log4net.Config.XmlConfigurator.Configure();  //這個地方是注冊log4net 配置

或在AssemblyInfo.cs文件中添加

[assembly: log4net.Config .XmlConfigurator()]

方法2中則需要指定配置文件

log4net.Config.XmlConfigurator.Configure("文件信息");  //這個地方是注冊log4net 配置,感興趣的朋友可以根據下圖進行相關配置,總之這個地方的效果和其它方法是一樣的,目的都是為了加載log4net 中的相關配置信息。

 

或在AssemblyInfo.cs文件中添加

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
這句的意思是 找到名稱為 log4net.config 的配置文件,不一定是web.config

 

轉載於:https://www.cnblogs.com/bindot/p/log4net.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM