log4Net(寫入日志文件)


   這里就簡單介紹下log4Net對寫入日志文件的一些了解,寫入數據庫類似,就不在一一介紹了。

   首先去log4net下載.

   然后我們新建一個控制台應用程序,並引入log4net.dll程序集,log4net/bin/net/4.5/release/log4net.dll

    接下來,我們在app.config配置如下。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--log4Net塊配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>


<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <!--輸出文件路徑-->
<file value="D:\\test.txt"/>
<appendToFile value="true"/>
<!--最多10個日志備份文件-->
<maxSizeRollBackups value="10"/>
<!--每個文件最大1M-->
<maximumFileSize value="1024KB"/>
<!--回滾的格式按照大小-->
<rollingStyle value="Size"/>

<staticLogFileName value="true"/>

<layout type="log4net.Layout.PatternLayout">
      <!--輸出內容 分別為:%date日期,%thread線程ID,(%-5level)等級,(%logger)初始配置時自定義的名字,%message消息,%newline換行-->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>

<root>
    <!--輸出等級限制-->
  <!--控制級別,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->

  <!--比如定義級別為INFO,則INFO級別向下的級別,比如DEBUG日志將不會被記錄-->

<!--如果沒有定義LEVEL的值,則缺省為DEBUG-->

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

</log4net>

<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

  

       然后我們在Program.cs使用如下。

  

 //從配置文件讀取log4net的配置,然后進行一個初始化工作。
log4net.Config.XmlConfigurator.Configure();

//創建一個實例,名字可隨便取
  ILog logWriete = log4net.LogManager.GetLogger("Demo2");
//這里輸出的類型為error
  logWriete.Error("哈哈");

  Console.WriteLine("成功!");
  Console.ReadKey();

     接下效果如下:

 

 

  ---------------------------------------------------------------華麗分割線---------------------------------------------------------------------

  有些時候,我們要把為了區分配置,把log4Net的配置獨立在一個文件里。

  在這里,我就在當前項目的根目錄下,創建一個config或者是XML文件。

  這里我就創建一個名字為log4Net.xml文件。

  其次,我們右鍵=》屬性,把《復制到輸出目錄》項改為始終賦值。

  並配置 logNet.xml內容如下。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
<configSections>
    <!--log4Net塊配置-->
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>


  <log4net>
    <!-- Define some output appenders -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <!--輸出文件路徑-->
      <file value="D:\\test.txt"/>
      <appendToFile value="true"/>
      <!--最多10個日志備份文件-->
      <maxSizeRollBackups value="10"/>
      <!--每個文件最大1M-->
      <maximumFileSize value="1024KB"/>
      <!--回滾的格式按照大小-->
      <rollingStyle value="Size"/>

      <staticLogFileName value="true"/>

      <layout type="log4net.Layout.PatternLayout">
      <!--輸出內容 分別為:%date日期,%thread線程ID,(%-5level)等級,(%logger)初始配置時自定義的名字,%message消息,%newline換行-->
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>

    <root>
    <!--輸出等級限制-->
     <!--控制級別,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->  

  <!--比如定義級別為INFO,則INFO級別向下的級別,比如DEBUG日志將不會被記錄-->

     <!--如果沒有定義LEVEL的值,則缺省為DEBUG-->

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

  </log4net>
 
</configuration>

  然后,我們把app.config中的所有log4Net配置都去掉。

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  
</configuration>

 

  最后我們在Program.cs使用如下。

 //從配置文件讀取log4net的配置,然后進行一個初始化工作。
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"log4Net.xml"));//這里指定路徑

/*
有些人,是直接在調用類命名上面直接打上,[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4Net.xml", Watch = true)]這一句也是可以的。

其次,只要是ConfigureAndWatch上面這一句
在lognet.xml文件中的<<log4Net塊配置>>是可以去掉的。
*/


//創建一個實例,名字可隨便取
  ILog logWriete = log4net.LogManager.GetLogger("Demo2");
//這里輸出的類型為error
  logWriete.Error("哈哈");
  Console.WriteLine("成功!");
  Console.ReadKey();

 

  注意事項。

    1:如果報錯,請查看配置節點。

    2:如果沒報錯,而並沒有輸出文件,請查看調用的時候是否有初始化配置這一句代碼。

 

       本文結束。

      

     如果問題,歡迎討論,咨詢,建議,意見。


免責聲明!

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



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