程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Apache log4net 配置的部分解釋,apachelog4net

Apache log4net 配置的部分解釋,apachelog4net

編輯:C#入門知識

Apache log4net 配置的部分解釋,apachelog4net


log4net 其實可以使用 系統自帶的 *.config 配置文件 來配置,也可以使用 其他配置文件 來配置。

這兩種配置方式決定了 log4net 使用哪些方式來讀取配置信息,從而也決定了一些特性。

log4net 用來讀取配置文件的方式有兩種,一種是 ASP.NET 的 System.Configuration API,另一種是 log4net 的 log4net.Config.XmlConfigurator


那麼他們的區別在哪裡呢?

System.Configuration API:

1、只能使用系統自帶的 *.config 配置文件來配置(WinForm 是 XXX.exe.config,WebForm 是 web.config)。

(「因為 System.Configuration API 不能重新加載配置文件」,此乃英文文檔的直譯,我估計他的意思是,配置文件只能從系統自帶的 *.config 配置文件一次性讀取,不能進行二次讀取,所以就不能使用其他配置文件來配置了,就算配置了也讀取不了。)

2、不能監控配置文件的變動。意思就是,你的程序一旦運行著,你修改配置文件(比如:由寫入文本文件改為寫入數據庫)是沒有作用的。

(這點可以從上面一點的解釋那裡可以知道,因為 System.Configuration API 不能重新加載配置文件。)

3、讀取配置權限跟著 ASP.NET 或者 IIS,所以配置應用程序權限的時候,完全不用擔心配置文件的權限問題。


log4net.Config.XmlConfigurator:

1、與上面相反,可以使用系統自帶的 *.config 配置文件來配置,也可以使用其他配置文件來配置。

2、與上面相反,可以進行監控,有改動立馬生效。

3、與上面相反,絕對要搞清楚程序是否有權限讀取文件。

那兩種方式應該怎麼配置呢?

System.Configuration API:

1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 5 <!--這一段很重要,它的意思就是,下面 log4net 這一個 section 使用後面這個程序來處理,這個程序其實就是調用 System.Configuration API,所以聲明這一段就是代表使用 System.Configuration API。--> 6 </configSections> 7 <log4net> 8 <!--這裡是一些具體配置--> 9 </log4net> 10 </configuration> web.config 1 [XmlConfigurator] 2 //[XmlConfigurator(ConfigFile = "xxx.config")] //不可用。 3 //[XmlConfigurator(ConfigFileExtension = "config")] //不可用。 4 //[XmlConfigurator(Watch = true)] //不可用。 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 //下面這兩個可用,二選一。 10 XmlConfigurator.Configure();//這一條等同於 [XmlConfigurator]。 11 XmlConfigurator.Configure(log4net.LogManager.GetRepository("DEBUG")); 12 13 //下面這個是不可用的。 14 //XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"~\xxx.config")); //不可用。 15 } 16 } Log4netDemo.cs


log4net.Config.XmlConfigurator:

1、使用其他配置文件配置。

如果使用其他配置文件來配置的話,那麼系統自帶的 *.config 配置文件就不用添加任何東西,直接新建一個配置文件(比如:xxx.config),裡面只要有 log4net 這個 section 就可以。

1 <?xml version="1.0" encoding="utf-8"?> 2 <log4net> 3 <!--這裡是一些具體配置--> 4 </log4net> xxx.config

2、使用系統自帶的 *.config 配置文件配置。

1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> 5 <!--因為這是系統的配置文件,所以裡面的每個 section 都要正確,但是下面 log4net 對於系統來說是不正確的,如果不寫這一段會報錯,這一段的意思是忽略 log4net 這個 section 的意思。--> 6 </configSections> 7 <log4net> 8 <!--這裡是一些具體配置--> 9 </log4net> 10 </configuration> web.config 1 //下面的都可用。 2 [XmlConfigurator]//使用系統自帶的 *.config 配置文件。 3 [XmlConfigurator(ConfigFile = "xxx.config")]//使用其他配置文件配置。 4 [XmlConfigurator(ConfigFileExtension = "config")]//使用其他配置文件配置。 5 [XmlConfigurator(Watch = true)]//監控配置文件。 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 //下面的都可用。 11 XmlConfigurator.Configure();//這一條等同於 [XmlConfigurator] 聲明。 12 XmlConfigurator.Configure(log4net.LogManager.GetRepository("DEBUG")); 13 14 XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"~\xxx.config"));//這一條等同於 [XmlConfigurator(ConfigFile = "xxx.config", Watch = true)] 聲明。 15 } 16 } Log4netDemo.cs


上面這些代碼只是一種展示,裡面的語法是錯誤的,應該完全理解之後,結合自己的項目進行配搭。


log4net文件記錄日志怎配置每天輸出到不同的文件?

<param name="DatePattern" value="yyyy-MM-dd.HH".log""/>
詳細介紹看這裡:blog.csdn.net/...669232
 

log4net 怎把配置文件放在程序中

可以當做資源文件編譯到dll或者exe裡面,用的時候釋放出來就行了。不過也可以寫代碼代替log4net
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved