<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    注銷

    注銷

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      112 隨筆 :: 7 文章 :: 18 評(píng)論 :: 0 Trackbacks

    Logger hierarchy (層次級(jí)別)

    Logger 都是已經(jīng)命名的實(shí)體。 Logger 的名稱區(qū)分大小寫并遵循以下規(guī)則:

    1 如果 A logger 的名稱如果是 B logger 名稱的前綴(通過“ . ”連接),則說 A logger B logger 的祖父級(jí)。

    2 如果 A logger 的名稱和 B logger 的名稱之間不存在其他的 logger 名稱,則 A logger B logger 的父級(jí)。

    例子: A logger 名稱為“ Foo.Bar ”, B logger 名稱為“ Foo.Bar.Baz ”, A B 的父級(jí)。名稱為“ System ”的 logger 是名稱為“ System.Text.StringBuilder ”的祖父級(jí)。

    Root logger 位于 logger 層次級(jí)別中的頂級(jí)。它有例外的三條規(guī)則:

    1 Root logger 總是存在的。

    2 Root logger 不能通過名稱或取。

    3 Root logger 有一個(gè)默認(rèn)的 Level 值為 Debug

    Logger 可以通過 log4net.LogManager 類的靜態(tài)方法 GetLogger 獲取。

    Level 值: ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF

    Level 繼承規(guī)則:如果一個(gè) logger 沒有定義 Level ,它的 Level 值將從它的父級(jí)(定義了 Level )繼承。

    日志紀(jì)錄請(qǐng)求通過調(diào)用 logger 實(shí)例的輸出方法實(shí)現(xiàn)。這些輸出方法有 Debug , Info Warn , Error Fatal 。

    通過定義,輸出方法決定了日志紀(jì)錄請(qǐng)求的 Level 。例如, log 是一個(gè) logger 實(shí)例,那么語句 log.Info(“..”) 的日志紀(jì)錄請(qǐng)求 Level INFO 。

    如果日志紀(jì)錄請(qǐng)求的 Level logger 本身定義(或繼承)的 Level 高,則請(qǐng)求是可行的,否則不可行。

    簡單規(guī)則:如果日志記錄請(qǐng)求的 Level L , logger 本身定義(或繼承) Level K ,當(dāng) L>=K 時(shí),日志紀(jì)錄請(qǐng)求是可行的。

    Level 級(jí)別: DEBUG <INFO<WARN<ERROR<FATAL

    通過名稱,調(diào)用 log4net.LogManager.GetLogger 方法,可以獲取同一個(gè) logger 的實(shí)例引用。這樣在配置了一個(gè) logger 后,不用在代碼中傳遞引用而可以獲取同一個(gè) logger 的引用了。與生物上的親子關(guān)系(父親總是先于孩子)基本相反,在 log4net 里, logger 可以被創(chuàng)建和配置成任何順序。特別的是,一個(gè)父級(jí) logger 可能比子級(jí) logger 后實(shí)例化,但卻可以在子級(jí)中查找到。

    ?

    Appender

    Log4net 允許日志以不同的方式輸出,如: ms sql 、文件、控制臺(tái)或者系統(tǒng)日志等等。

    一個(gè) logger 可以有多個(gè) Appender 。每一個(gè)可行的日志紀(jì)錄請(qǐng)求將輸出到所有的 appender ,這些 appender 是在當(dāng)前這個(gè) logger 中引用的,還包括父級(jí) logger 中引用的。換句話說, appender 將在 logger 的層次級(jí)別中添加性的繼承。例如在 root 中定義了一個(gè) Console appender ,那么所有的 logger 至少有一個(gè) Console appender 。如果 A logger 有一個(gè) File appender ,則 A logger 以及它的子 logger 都有兩個(gè) appender 。

    Additivity 屬性默認(rèn)為 true ,當(dāng)設(shè)置為 false 時(shí), appender 將采用覆蓋的方式,而不再從父級(jí) logger 中繼承。

    ?

    ?

    Filters 是用來過濾 appender 能接受的日志信息。

    使用以下 filter appender 只接受 Level INFO FATAL 之間的日志紀(jì)錄請(qǐng)求。

    <filter type="log4net.Filter.LevelRangeFilter">

    ?????? <param name="LevelMin" value="INFO" />

    ?????? <param name="LevelMax" value="FATAL" />

    </filter>

    ?

    使用以下 filter appender 只接受包含子串為“ database ”的日志紀(jì)錄。

    <filter type="log4net.Filter.StringMatchFilter">

    ?????? <param name="StringToMatch" value="database" />

    </filter>

    <filter type="log4net.Filter.DenyAllFilter" />

    第一個(gè) filter 將會(huì)在日志紀(jì)錄信息中查找“ database ”,如果找到則不再匹配下面得 filter appener 接受并紀(jì)錄該日志。如果沒有找到則繼續(xù)使用第二個(gè) filter ,該 filter 將拒絕任何日志信息。

    ?

    Layouts 用來定制輸出格式。

    ?

    加載配置

    ConfigFile 屬性:當(dāng)我們自己定義了一個(gè) log4net 的配置文件時(shí),可以通過這個(gè)屬性來指定配置文件。

    ConfigFileExtension 屬性:當(dāng)應(yīng)用程序會(huì)編譯成不同擴(kuò)展名稱的程序集時(shí),可以使用這個(gè)屬性。如 Sample 程序?qū)⒕幾g成 Sample.exe ,則 ConfigFileExtension 設(shè)置為“ config ”,那么所使用的配置文件名稱為: Sample.exe.config 。注意不能和 ConfigFile 屬性同時(shí)使用。

    Watch 屬性:在運(yùn)行期間是否監(jiān)測配置文件。當(dāng)值為 true 時(shí), FileSystemWatcher 將用來監(jiān)視配置文件的內(nèi)容改變、重命名和刪除通知。

    ?

    為應(yīng)用程序加載 log4net 的配置,可以通過在應(yīng)用程序集中設(shè)置屬性。

    例如:

    [assembly: log4net.Config.DOMConfigurator(ConfigFile="Sample.config")]

    [assembly: log4net.Config.DOMConfigurator(ConfigFileExtension="config")]

    也可以不使用任何參數(shù),這時(shí)將使用應(yīng)用程序的配置文件。

    [assembly: log4net.Config.DOMConfigurator()]

    ?

    另一種方式是在代碼中使用 DOMConfigurator

    log4net.Config.DOMConfigurator.Configure(

    new FileInfo("TestLogger.Exe.Config"));

    使用 ConfigureAndWatch(..) 可以指定一個(gè)配置文件并且監(jiān)視該文件的變化。

    												
    														
    																
    																		?
    																
    														
    												
    										

    PatternLayout

    每一種指定的轉(zhuǎn)換符號(hào)都以 % 開始,后面跟著一個(gè)可選的格式符號(hào)和一個(gè)轉(zhuǎn)換符號(hào)。轉(zhuǎn)換符號(hào)用來指定輸出的數(shù)據(jù)類型,如 Level , logger , date 等。

    例如:轉(zhuǎn)換模型“ %-5p [%t]: %m%n

    ?????? ?ILog log = LogManager.GetLogger(typeof(TestApp));

    ?????? ?log.Debug("Message 1");

    ?????? ?log.Warn("Message 2");??

    轉(zhuǎn)換后:

    ?????? ?DEBUG [main]: Message 1

    ?????? ?WARN? [main]: Message 2

    %-5p ”表示輸出日志紀(jì)錄請(qǐng)求的 Level 值,寬度為 5 個(gè)子符,并左對(duì)齊。

    ?

    轉(zhuǎn)換符號(hào)列表:

    a

    輸出創(chuàng)建日志的 AppDomain 的名稱

    c

    默認(rèn)輸出 logger 的全名稱。后面可跟“ { 數(shù)字 } ”,則表示輸出與數(shù)字對(duì)應(yīng)的 logger 名稱級(jí)別(從右邊開始)。如全名為“ a.b.c ”,“ %c{2} ”輸出“ b.c

    C

    輸出調(diào)用日志紀(jì)錄請(qǐng)求的類名。后面可跟“ { 數(shù)字 } ”,表示輸出與數(shù)字對(duì)應(yīng)的類名稱(包含命名空間,從右邊開始)。

    d

    輸出日志記錄時(shí)間,后可跟“ { 時(shí)間格式 } ”。默認(rèn)為 yyyy-MM-dd HH:mm:ss,fff

    F

    輸出調(diào)用日志紀(jì)錄請(qǐng)求的文件全名。(會(huì)影響速度)

    l

    輸出調(diào)用日志紀(jì)錄請(qǐng)求的一些本地信息。如類和成員名,調(diào)用文件和調(diào)用聲明的代碼行數(shù)。(極其影響性能)

    L

    輸出調(diào)用日志紀(jì)錄請(qǐng)求的聲明代碼行數(shù)。(極其影響性能)

    m

    輸出應(yīng)用程序所要輸出的信息。

    M

    輸出調(diào)用日志紀(jì)錄請(qǐng)求的成員名稱。(極其影響性能)

    n

    輸出換行符號(hào)

    p

    輸出日志請(qǐng)求的 Level

    P

    ?

    r

    輸出從應(yīng)用程序啟動(dòng)開始到日志紀(jì)錄請(qǐng)求的時(shí)間(毫秒)

    t

    輸出產(chǎn)生日志的線程名稱,如果沒有名稱則輸出線程的編號(hào)

    u

    輸出當(dāng)前活動(dòng)用戶的名稱。( Principal.Identity.Name

    W

    輸出當(dāng)前活動(dòng)用戶的 windows 標(biāo)識(shí)。

    x

    ?

    X

    ?

    %

    輸出一個(gè) % 號(hào)


    posted on 2006-12-19 10:02 注銷..... 閱讀(422) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲男人的天堂网站| a级亚洲片精品久久久久久久| 91短视频免费在线观看| 午夜精品免费在线观看| 国产精成人品日日拍夜夜免费| 中国一级特黄的片子免费 | 亚洲一区二区三区免费视频| 亚洲精品在线免费观看视频| 亚洲第一二三四区| 亚洲一区精品视频在线| 亚洲av日韩av综合| 亚洲中文字幕久久无码| 亚洲欧美自偷自拍另类视| 亚洲日韩AV无码一区二区三区人| 亚洲精品理论电影在线观看| 亚洲国产精品久久久久秋霞小| 亚洲av乱码一区二区三区按摩| 羞羞视频免费网站入口| 一个人免费观看视频在线中文| 久久久久免费视频| 99国产精品视频免费观看| 青青青国产在线观看免费网站 | a级毛片在线免费观看| 国产精品免费视频一区| 国产成人免费片在线视频观看| 一级毛片直播亚洲| 国产亚洲美女精品久久久2020| 亚洲精品无码精品mV在线观看| 亚洲第一视频网站| 亚洲一区二区三区不卡在线播放 | 精品国产亚洲男女在线线电影| 亚洲中文字幕久久精品无码APP | 天堂亚洲免费视频| 精品久久久久久亚洲| 18女人水真多免费高清毛片| 中文字幕无码播放免费| 国产精品深夜福利免费观看 | 在线观看成人免费视频不卡| 韩国日本好看电影免费看| 69式互添免费视频| 国产精品自在自线免费观看|