天天看點

log4net配置與app.config檔案

     給自己的項目加入日志功能,首先添加引用log4net.dll,再設定配置檔案,由于是WebForm應用,是以配置檔案是app.config,如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
  </configSections>
  <appSettings>
  </appSettings>

  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="D:\\NetDiskLogData\\" />
      <appendToFile value="true" />
      <datePattern value="yyyy-MM-dd.LOG" />
      <maxSizeRollBackups value="10" />
      <rollingStyle value="Date" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="記錄時間:%d{yyyy-MM-dd HH:mm:ss}  線程ID:[%thread] 日志級别:%-5level  檔案:%file  類:%logger  %message%newline%newline" />
      </layout>
    </appender>

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

  </log4net>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup> 
</configuration>
           

     另外,有幾點是需要注意的:

     1.配置檔案中configuration為根目錄,其中的節點需要按照規定的順序,configSections要在第一位,其次是appSettings,這是app.config的文法規定,不然會報錯:“Configuration system failed to initialize”。

     2.要指定log4net使用app.config來讀取配置資訊,一般寫在AssemblyInfo.cs裡,此時隻需要在應用中配置一次就行了:[assembly: log4net.Config.XmlConfigurator(Watch=true)],不用每個類都寫這句話,不然的話會提示重複設定。

     3.配置完成後下方會提示“未能找到元素‘log4net’的架構資訊”等一大堆提示内容,應該是XML檔案沒有經過驗證導緻的,這個不會影響程式。