麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

log4net使用筆記

2019-11-14 16:22:24
字體:
來源:轉載
供稿:網友

一、Log4net特征

 

1、自定義日志輸出級別

Log4net將日志分為五個級別優先級從高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外還有ALL(允許所有的日志請求)和OFF(拒絕所有的日志請求)這兩種特殊的級別。可以通過日志級別來控制日志是否輸出。

如果你配置文件中定義的是INFO級別,程序中有三種日志記錄方式

Log.Info(“日志內容”),Log.Warn(“日志內容”),Log.Debug(“日志內容”)

則Log.Info,Log.Debug都會輸出日志,Log.Warn不會輸出日志。

2、自定義日志輸出方式

Log4net的日志輸出方式很靈活,可以將日志輸出至文本文件,控制臺,郵件,Windows Event Log,數據庫等等。對于寫日志至文本文件還可以有如下非常靈活的配置。

a、按時間段打印日志,按月,按日 ,按時,按分等隨你配置 b、按文件的大小 打印滾動日志,如每10M,100M一個日志文件,這樣可以防止日志文件不至于過大,日志文件達到4,5G日后我們基本上就很難打開了。 c、指定日志大小,比如說指定500M,那么日志將只有一個且不會超出500M。

 

 

二、Log4net的安裝

 

1、用戶可以從 http://logging.apache.org/log4net/ 下載log4net的源代碼。

2、解壓軟件包后,在解壓的src目錄下將log4net.sln載入Visual Studio .NET,編譯后可以得到log4net.dll。

3、用戶要在自己的程序里加入日志功能,只需將log4net.dll引入工程即可。

 

三、在程序中使用log4net

 

1、log4net配置文件與程序的關聯

log4net的配置可以放在應用程序的默認配置文件中(app.config或web.config),也可以在自己指定的配置文件中。log4net框架中是使用log4net.Config.xmlConfigurator在程序集的級別上定義配置文件。

例如,找到當前項目的Assemblyinfo.cs文件添加下面一行,將與Web.config文件關聯起來

[assembly: log4net.Config.XmlConfigurator(ConfigFile="Web.config",Watch=true)] 

 

Assemblyinfo.cs配置說明

ConfigFile

指出了我們的配置文件的路徑及文件名,包括擴展名。

ConfigFileExtension

如果我們對被編譯程序的程序集使用了不同的文件擴展名,那么我們需要定義這個屬性,缺省的,程序集的配置文件擴展名為”config”。

Watch (Boolean屬性)

log4net框架用這個屬性來確定是否需要在運行時監視文件的改變。如果這個屬性為true,那么FileSystemWatcher將會被用來監視文件的改變,重命名,刪除等事件。

其中:ConfigFile和ConfigFileExtension屬性不能同時使用,ConfigFile指出了配置文件的名字

 

 

四、log4net的標準配置文檔示例(web.config)

 

XML 代碼   復制
<?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]&#13;&#10;"/>
        <paramname="Footer"value="[Footer]&#13;&#10;"/>
        <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>

 

五、配置文件節點說明

 

1、在配置章節中,定義section節點。節點名稱為:須為log4net,且大小寫敏感。

         <configSections>

                    <sectionname="log4net"

                              type="log4net.Config.Log4NetConfigurationSectionHandler" />

         </configSections>

 

2、root節點說明  

 

(1)根logger,所有其它logger都默認繼承它。root元素沒有屬性。

 

2)支持的子元素

        appender-ref 0個或多個,要引用的appender的名字。

        level 最多一個。只有在這個級別或之上的事件才會被記錄。

        param 0個或多個,設置一些參數。        

     

(3)在<root>標簽里,可以定義level級別值和Appender的列表。

        如果沒有定義LEVEL的值,則缺省為DEBUG。可以通過<appender-ref>標簽定義日志對象使用的Appender對象。<appender-ref>聲明了在其他地方定義的Appender對象的一個引用。在一個logger對象中的設置會覆蓋根日志的設置。而對Appender屬性來說,子日志對象則會繼承父日志對象的Appender列表。這種缺省的行為方式也可以通過顯式地設定<logger>標簽的additivity屬性為false而改變。 

 

3、Logger節點說明

 

(1)支持的屬性name,Additivity兩個屬性       

           name必須的,logger的名稱

          additivity 可選,取值是true或false,默認值是true。設置為false時將阻止父logger中的appender。

 

(2)支持的子元素

          appender-ref 0個或多個,要引用的appender的名字。

          evel最多一個。只有在這個級別或之上的事件才會被記錄。

          param 0個或多個,設置一些參數。

        

(3)<logger> 元素預定義了一個具體日志對象的設置

        然后通過調用LogManager.GetLogger(“testAPP.Logging”)函數,你可以檢索具有該名字的日志。如果LogManager.GetLogger(&hellip;)打開的不是預定義的日志對象,則該日志對象會繼承根日志對象的屬性。知道了這一點,我們可以說,其實<logger>標簽并不是必須的。

 

4、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類中對應的屬性的值。

 

(3)在<root>標簽或單個的<logger>標簽里的Appender對象可以用<appender>標簽定義

            <appender>標簽的基本形式如上面所示。它定義了appender的名字和類型。 另外比較重要的是<appender>標簽內部的其他標簽。不同的appender有不同的<param>標簽。在這里,為了使用FileAppender,你需要一個文件名作為參數。另外還需要一個在<appender>標簽內部定義一個Layout對象。Layout對象定義在它自己的<layout>標簽內。<layout>標簽的type屬性定義了Layout的類型(在本例里是PatternLayout),同時也確定了需要提供的參數值。Header和Footer標簽提供了一個日志會話(logging session)開始和結束時輸出的文字。有關每種appender的具體配置的例子,可以在log4net/doc/manual/example-config-appender.html中得到。

 

5、Filter節點說明

 

過濾器,只能作為<appender>的子元素。

支持的屬性:

            type 必須的,Filter的類型

            支持的子元素:param 0個或多個,設置一些參數。

 

6、Layout節點說明

        

布局,只能作為<appender>的子元素。

支持的屬性:

           type 必須的,Layout的類型

 

           支持的子元素:param 0個或多個。

 

log4net.Layout.PatternLayout中的轉換模式(ConversionPattern)

 

%m(message):輸出的日志消息,如ILog.Debug(…)輸出的一條消息

%n(new line):換行

%d(datetime):輸出當前語句運行的時刻

%r(run time):輸出程序從運行到執行到當前語句時消耗的毫秒數

%t(thread id):當前語句所在的線程ID

%p(PRiority): 日志的當前優先級別,即DEBUG、INFO、WARN…等

%c(class):當前日志對象的名稱,例如:

%L:輸出語句所在的行號

%F:輸出語句所在的文件名

%-數字:表示該項的最小長度,如果不夠,則用空格填充

 

例如

轉換模式為%r [%t]%-5p %c - %m%n 的 PatternLayout 將生成類似于以下內容的輸出:

176 [main] INFO  org.foo.Bar - Located nearest gas station.

 

7、Param

 

<param>元素可以是如何元素的子元素。

 

支持的屬性

         name 必須的,取值是父對象的參數名。

         value 可選的,value和type中,必須有一個屬性被指定。value是一個能被轉化為參數值的字符串。

         type 可選的,value和type中,必須有一個屬性被指定。type是一個類型名,如果type不是在log4net程序集中定義的,就需要使用全名。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩在线播放 | 99视频观看 | 亚洲成人自拍电影 | 精品一区二区三区免费 | 伦理三区| 国产精品久久久久久久久久东京 | 欧美精品成人一区二区在线观看 | 啪啪激情 | av国语| 天天草天天色 | 圆产精品久久久久久久久久久 | 欧美wwwsss9999| 亚洲视频在线免费看 | 色交视频| 国产高潮失禁喷水爽到抽搐视频 | 国产精品久久久久久影视 | 亚洲av一级毛片特黄大片 | 日韩精品a在线观看 | 午夜精品区 | 成人午夜激情视频 | 一区二区三区小视频 | 日韩毛片在线看 | 黑人一级片视频 | 九九热精品在线播放 | 黄片一级毛片 | 日韩精品中文字幕在线播放 | 久久色伦理资源站 | 97中文字幕第一一一页 | 黑人一级片| 欧美色性 | av在线播放亚洲 | 国产98色 | 免费观看一级黄色片 | 99爱视频| 国产成人综合在线 | 午夜视频在线观看91 | 在线观看一区二区三区四区 | 久久精品国产亚洲7777小说 | 日韩视频一区在线 | 制服丝袜成人动漫 | 欧美一级淫片免费视频1 |