您好,登錄后才能下訂單哦!
此文檔是我在"大道至簡"的基礎上修改而成,再次表示謝謝!
(一)log4net的標準配置文檔示例
<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
<configSections>
<sectionname="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler" />
</configSections>
<log4net>
<root>
<levelvalue="WARN" />
<appender-refref="LogFileAppender" />
<appender-refref="ConsoleAppender" />
</root>
<loggername="testApp.Logging">
<levelvalue="DEBUG"/>
</logger>
<appendername="LogFileAppender" type="log4net.Appender.FileAppender" >
<paramname="File"value="log-file.txt" />
<paramname="AppendToFile"value="true" />
<layouttype="log4net.Layout.PatternLayout">
<paramname="Header"value="[Header] "/>
<paramname="Footer"value="[Footer] "/>
<paramname="ConversionPattern" value="%d [%t] %-5p %c[%x] - %m%n" />
</layout>
<filtertype="log4net.Filter.LevelRangeFilter">
<paramname="LevelMin"value="DEBUG" />
<paramname="LevelMax"value="WARN" />
</filter>
</appender>
<appendername="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layouttype="log4net.Layout.PatternLayout">
<paramname="ConversionPattern" value="%d [%t] %-5p %c [%x] -%m%n" />
</layout>
</appender>
</log4net>
</configuration>
(二)log4net配置文件與程序的關聯
log4net的配置可以放在應用程序的默認配置文件中(app.config或web.config),也可以在自己指定的配置文件中。log4net框架中是使用log4net.Config.XmlConfigurator在程序集的級別上定義配置文件。
(1)winform程序中,如果配置在app.config文件中,配置文件的結構如示例。這時找到當前項目的Assemblyinfo.cs文件添加
[assembly:log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch= true)] app.config文件屬性設置保持默認。
(2)winform程序中,如果配置在自定義文件中如"Config.txt"中。這時找到當前項目的Assemblyinfo.cs文件添加
[assembly:log4net.Config.XmlConfigurator(ConfigFile="config.txt", Watch =true)] Config.txt文件的屬性要設置為復制。就是要輸出到輸出目錄。
這個時候配置可以省略示例模版中<configSection>節點里的<section>節點。
ConfigFile:指出了我們的配置文件的路徑及文件名,包括擴展名。
ConfigFileExtension:如果我們對被編譯程序的程序集使用了不同的文件擴展名,那么我們需要定義這個屬性,缺省的,程序集的配置文件擴展名為"config".
更多http://www.cnblogs.com/relaibma/
Watch (Boolean屬性): log4net框架用這個屬性來確定是否需要在運行時監視文件的改變。如果這個屬性為true,那么FileSystemWatcher將會被用來監視文件的改變,重命名,刪除等事件。
其中:ConfigFile和ConfigFileExtension屬性不能同時使用,ConfigFile指出了配置文件的名字,例如,ConfigFile="Config.txt"
ConfigFileExtension則是指明了和可執行程序集同名的配置文件的擴展名,例如,應用程序的名稱是"test.exe",ConfigFileExtension="txt",則配置文件就應該是"test.exe.txt" ;
也可以在程序代碼中用DOMConfigurator類打開配置文件。類的構造函數需要一個FileInfo對象作參數,以指出要打開的配置文件名。這個方法和前面在程序集里設置屬性打開一個配置文件的效果是一樣的。
log4net.Config.DOMConfigurator.Configure(newFileInfo("TestLogger.Exe.Config"));
DOMConfigurator 類還有一個方法ConfigureAndWatch(), 用來配置框架并檢測文件的變化。
(二)節點分析
在配置章節中,定義section節點。節點名稱為:須為log4net,且大小寫敏感。
<configSections>
<sectionname="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler" />
</configSections>
(三)log4net節點說明
(1)節點支持的屬性,debug,update,threshold三個屬性
debug 可選,取值是true或false,默認是false.設置為true,開啟log4net的內部調試。
update 可選,取值是Merge(合并)或Overwrite(覆蓋),默認值是Merge.設置為Overwrite,在提交配置的時候會重置已經配置過的庫。
threshold 可選,取值是repository(庫)中注冊的level,默認值是ALL.
(2)支持子元素
appender 0或多個
logger 0或多個
renderer 0或多個
root 最多一個
param 0或多個
(四)root節點說明
(1)根logger,所有其它logger都默認繼承它。root元素沒有屬性。
(2)支持的子元素 www.2cto.com
appender-ref 0個或多個,要引用的appender的名字。
· level 最多一個。只有在這個級別或之上的事件才會被記錄。
· param 0個或多個,設置一些參數。
<root>
<levelvalue="WARN" />
<appender-refref="LogFileAppender" />
<appender-refref="ConsoleAppender" />
</root>
(五)Logger節點說明
(1)支持的屬性name,Additivity兩個屬性
name 必須的,logger的名稱
additivity 可選,取值是true或false,默認值是true.設置為false時將阻止父logger中的appender.
(2)支持的子元素:
appender-ref 0個或多個,要引用的appender的名字。
·level 最多一個。只有在這個級別或之上的事件才會被記錄。
·param 0個或多個,設置一些參數。
例如:<loggername="testApp.Logging">
<levelvalue="DEBUG"/>
</logger>
(六)Appender節點說明
(1)定義日志的輸出方式,只能作為 log4net 的子元素。name屬性必須唯一,type屬性必須指定。支持name,type兩個屬性。
name 必須的,Appender對象的名稱
type 必須的,Appender對象的輸出類型
(2)支持的子元素:
· appender-ref 0個或多個,允許此appender引用其他appender,并不是所以appender類型都支持。
·filter 0個或多個,定義此app使用的過濾器。
·layout 最多一個。定義appender使用的輸出格式。
· param 0個或多個,設置Appender類中對應的屬性的值。
例如: LogFileAppender 節點日志文件輸出。type="log4net.Appender.FileAppender"
ConsoleAppender節點控制臺輸出。type="log4net.Appender.ConsoleAppender"
(七)Filter節點說明
過濾器,只能作為<appender>的子元素。
支持的屬性:
type 必須的,Filter的類型
支持的子元素:param 0個或多個,設置一些參數。
(八)Layout節點說明
布局,只能作為<appender>的子元素。
支持的屬性:
type 必須的,Layout的類型
支持的子元素:param 0個或多個,設置一些參數。
(九)Param
<param>元素可以是如何元素的子元素。
支持的屬性:
name 必須的,取值是父對象的參數名。
value 可選的,value和type中,必須有一個屬性被指定。value是一個能被轉化為參數值的字符串。
type 可選的,value和type中,必須有一個屬性被指定。type是一個類型名,如果type不是在log4net程序集中定義的,就需要使用全名。
支持的子元素:param 0個或多個,設置一些參數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。