這裡就簡單介紹下log4Net對寫入日誌文件的一些瞭解,寫入資料庫類似,就不在一一介紹了。 首先去log4net下載. 然後我們新建一個控制台應用程式,並引入log4net.dll程式集,log4net/bin/net/4.5/release/log4net.dll 接下來,我們在app.confi ...
這裡就簡單介紹下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:如果沒報錯,而並沒有輸出文件,請查看調用的時候是否有初始化配置這一句代碼。
本文結束。
如果問題,歡迎討論,咨詢,建議,意見。