欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談C++日志系統(tǒng)log4cxx的使用小結(jié)詳解

 更新時(shí)間:2013年05月16日 16:39:30   作者:  
本篇文章是對(duì)C++日志系統(tǒng)log4cxx的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
本文主要從log4cxx級(jí)別、layout、格式化、命名規(guī)則、Filter幾個(gè)方面介紹。

一、log4cxx命名規(guī)則
Logger由一個(gè)String類的名字識(shí)別,logger的名字是大小寫敏感的,且名字之間具有繼承的關(guān)系,子名有父名作為前綴,用點(diǎn)號(hào).分隔。如:x.y是x.y.z的父親。根logger (root logger)是所有l(wèi)ogger的祖先, 它具有如下屬性:1) 它總是存在的;2) 它不可以通過名字獲得。通過調(diào)用public static Logger Logger.getRootLogger()獲得root logger;通過調(diào)用public static Logger Logger.getLogger(String name)或者public static Logger Logger.getLogger(Class clazz)獲得或者創(chuàng)建)一個(gè)named logger。后者相當(dāng)于調(diào)用Logger.getLogger(clazz.getName())。在某對(duì)象中,用該對(duì)象所屬的類為參數(shù),調(diào)用Logger.getLogger(Class clazz)以獲得logger被認(rèn)為是目前 所知的最理智的命名logger的方法。

二、log4cxx Log Level級(jí)別介紹
每個(gè)logger都被分配了一個(gè)日志級(jí)別 (log level),用來(lái)控制日志信息的輸出。未被分配level的 logger將繼承它最近的父logger的level。每條輸出到logger的日志請(qǐng)求(logging request)也都有一個(gè) level,如果該request的level大于等于該logger的level,則該request將被處理(稱為enabled);否則該 request將被忽略。故可得知:1、logger的level越低,表示該logger越詳細(xì) 2、logging request的 level越高,表示該logging request越優(yōu)先輸出 3、如果沒有設(shè)置日志記錄器(Logger)的級(jí)別,那么它將 會(huì)繼承最近的祖先的級(jí)別。因此,如果在包c(diǎn)om.foo.bar中創(chuàng)建一個(gè)日志記錄器(Logger)并且沒有設(shè)置級(jí) 別,那它將會(huì)繼承在包c(diǎn)om.foo中創(chuàng)建的日志記錄器(Logger)的級(jí)別。如果在com.foo中沒有創(chuàng)建日志記錄 器(Logger)的話,那么在com.foo.bar中創(chuàng)建的日志記錄器(Logger)將繼承root 日志記錄器(Logger) 的級(jí)別,root日志記錄器(Logger)經(jīng)常被實(shí)例化而可用,它的級(jí)別為DEBUG。
Level類中預(yù)定義了五個(gè)level,它們的大小關(guān)系如下:Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF

三、log4cxx(log4j) Log layout介紹
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的級(jí)別和信息字符串),
org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

四、log4cxx Log 格式化信息介紹
Log4J采用類似C語(yǔ)言中的printf函數(shù)的打印格式格式化日志信息,打印參數(shù)如下:
%m 輸出代碼中指定的消息
%p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL
%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
%c 輸出所屬的類目,通常就是所在類的全名
%t 輸出產(chǎn)生該日志事件的線程名
%n 輸出一個(gè)回車換行符,Windows平臺(tái)為“rn”,Unix平臺(tái)為“n”
%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd
HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921 %l 輸出日志事件的發(fā)生位置,包括類目名
、發(fā)生的線程,以及在代碼中的行數(shù)。

五、log4cxx Log appender種類介紹
Log4cXX提供的appender種類:
org.apache.log4j.ConsoleAppender 控制臺(tái)
org.apache.log4j.DailyRollingFileAppender 每天產(chǎn)生一個(gè)日志文件
org.apache.log4j.FileAppender 文件org.apache.log4j.RollingFileAppender 文件大小達(dá)到指定尺寸的
時(shí)候產(chǎn)生一個(gè)新的文件

六、log4cxx Log Filter介紹
包括選擇過濾器和設(shè)置過濾條件,可選擇的過濾器包括:LogLevelMatchFilter、LogLevelRangeFilter、和 StringMatchFilter:
1、對(duì)LogLevelMatchFilter來(lái)說(shuō),過濾條件包括LogLevelToMatch和AcceptOnMatch(true|false),只有 當(dāng)log信息的LogLevel值與LogLevelToMatch相同,且AcceptOnMatch為true時(shí)才會(huì)匹配。
2、對(duì)LogLevelRangeFilter來(lái)說(shuō),過濾條件包括LogLevelMin、LogLevelMax和AcceptOnMatch,只有當(dāng)log信 息的LogLevel在LogLevelMin、LogLevelMax之間同時(shí)AcceptOnMatch為true時(shí)才會(huì)匹配。
3、對(duì)StringMatchFilter來(lái)說(shuō),過濾條件包括StringToMatch和AcceptOnMatch,只有當(dāng)log信息的LogLevel 值與StringToMatch對(duì)應(yīng)的LogLevel值與相同,且AcceptOnMatch為true時(shí)會(huì)匹配。

七、log4cxx additivity屬性介紹
它是 子Logger 是否繼承 父Logger 的 輸出源(appender)的標(biāo)志位。具體說(shuō),默認(rèn)情況下子Logger會(huì)繼承父Logger的appender,也就是說(shuō)子Logger會(huì)在父Logger的appender里輸 出。若是additivity設(shè)為false,則子Logger只會(huì)在自己的appender里輸出,而不會(huì)在父Logger的appender里輸 出。

相關(guān)文章

  • C++使用MFC獲取PC硬件配置信息

    C++使用MFC獲取PC硬件配置信息

    這篇文章主要為大家詳細(xì)介紹了C++使用MFC獲取PC硬件配置信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • C++實(shí)現(xiàn)自底向上的歸并排序算法

    C++實(shí)現(xiàn)自底向上的歸并排序算法

    這篇文章主要介紹了C++實(shí)現(xiàn)自底向上的歸并排序算法,結(jié)合實(shí)例形式較為詳細(xì)的分析總結(jié)了自底向上的歸并排序算法的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-12-12
  • C語(yǔ)言特殊符號(hào)的補(bǔ)充理解

    C語(yǔ)言特殊符號(hào)的補(bǔ)充理解

    這篇文章主要為大家介紹了C語(yǔ)言特殊符號(hào)的使用補(bǔ)充理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • C++使用jsoncpp解析json的方法示例

    C++使用jsoncpp解析json的方法示例

    這篇文章主要介紹了C++使用jsoncpp解析json的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • c++ 梅森數(shù)源碼示例解析

    c++ 梅森數(shù)源碼示例解析

    這篇文章主要為大家介紹了c++ 梅森數(shù)源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • C語(yǔ)言遞歸實(shí)現(xiàn)掃雷游戲

    C語(yǔ)言遞歸實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言遞歸實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語(yǔ)言實(shí)現(xiàn)掃雷小游戲完整算法詳解(附完整代碼)

    C語(yǔ)言實(shí)現(xiàn)掃雷小游戲完整算法詳解(附完整代碼)

    掃雷游戲想必我們都有玩過,那么今天就用C語(yǔ)言來(lái)簡(jiǎn)單實(shí)現(xiàn)“掃雷”小游戲,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言實(shí)現(xiàn)掃雷小游戲完整算法的相關(guān)資料,文中給出了完整的實(shí)例代碼,需要的朋友可以參考下
    2022-06-06
  • 詳解Dijkstra算法之最短路徑問題

    詳解Dijkstra算法之最短路徑問題

    Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。主要特點(diǎn)是以起始點(diǎn)為中心向外層層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止。本文將介紹其原理,并用C++實(shí)現(xiàn)
    2021-06-06
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之單鏈表

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之單鏈表

    單鏈表是一種鏈?zhǔn)酱嫒〉臄?shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。本文將為大家介紹C語(yǔ)言中單鏈表的基本概念與讀取數(shù)據(jù)元素,需要的可以參考一下
    2021-12-12
  • 判斷機(jī)器大小端的兩種實(shí)現(xiàn)方法

    判斷機(jī)器大小端的兩種實(shí)現(xiàn)方法

    第一種方法,思路:利用指針的強(qiáng)制類型轉(zhuǎn)換。第二種方法,思路:利用共用體所有數(shù)據(jù)都從同一地址開始存儲(chǔ)。
    2013-03-03

最新評(píng)論