奇怪的是在2005裡,卻可以正常編譯,正常使用,不知道有沒有誰遇到過?
log4cplus.rootlogger=trace, stdout, all_msgs
conversionpattern : 其中d是大寫,不知道為何在部落格中卻顯示成了小寫的d
log4cplus.rootlogger=trace, stdout, all_msgs
1.log4cplus基本元素
layouts :控制輸出訊息的格式。
logger :日誌物件。
priorities :優先權,包括trace, debug, info, warning, error, fatal。
2.log4cplus基本結構
3. 使用步驟:
c.) 生成logger物件。
d.) 設定logger優先順序。(可選)
五.log4cplus內容介紹
1. logger物件
logger物件具有層次結構,按名稱區分,如下**:
logger test = logger::getinstance("test");
logger subtest = logger::getinstance("test.subtest");
物件subtest是test的子物件。
2. 優先順序
log4cplus優先順序有低到高:
not_set_log_level :接受預設的loglevel,如果有父logger則繼承它的loglevel
all_log_level :開放所有log資訊輸出
trace_log_level :開放trace資訊輸出(即all_log_level)
debug_log_level :開放debug資訊輸出
info_log_level :開放info資訊輸出
warn_log_level :開放warning資訊輸出
error_log_level :開放error資訊輸出
fatal_log_level :開放fatal資訊輸出
off_log_level :關閉所有log資訊輸出
各個logger可以通過setloglevel設定自己的優先順序,當某個logger的loglevel設定成not_set_log_level時,該logger會繼承父logger的優先順序,另外,如果定義了重名的多個logger, 對其中任何乙個的修改都會同時改變其它logger。
3.layout格式輸出
1.) ******layout
是一種簡單格式的布局器,在輸出的原始資訊之前加上loglevel和乙個"-"。
2.) ttcclayout
其格式由時間,執行緒id,logger和ndc 組成。
3.) patternlayout
是一種有詞法分析功能的模式布局器,類似正規表示式。以「%」作為開頭的特殊預定義識別符號,將產生特殊的格式資訊。
(1)"%%",轉義為% 。
(2)"%c",輸出logger名稱,如test.subtest 。也可以控制logger名稱的顯示層次,比如"%c"時輸出"test",其中數字表示層次。
(3)"%d",顯示本地時間,比如:"2004-10-16 18:55:45",%d顯示標準時間。 可以通過%d定義更詳細的顯示格式,比如%d表示要顯示小時:分鐘:秒。大括號中可顯示的
預定義識別符號如下:
%a -- 表示禮拜幾,英文縮寫形式,比如"fri"
%a -- 表示禮拜幾,比如"friday"
%b -- 表示幾月份,英文縮寫形式,比如"oct"
%b -- 表示幾月份,"october"
%c -- 標準的日期+時間格式,如 "sat oct 16 18:56:19 2004"
%d -- 表示今天是這個月的幾號(1-31)"16"
%h -- 表示當前時刻是幾時(0-23),如 "18"
%i -- 表示當前時刻是幾時(1-12),如 "6"
%j -- 表示今天是哪一天(1-366),如 "290"
%m -- 表示本月是哪一月(1-12),如 "10"
%m -- 表示當前時刻是哪一分鐘(0-59),如 "59"
%p -- 表示現在是上午還是下午, am or pm
%q -- 表示當前時刻中毫秒部分(0-999),如 "237"
%q -- 表示當前時刻中帶小數的毫秒部分(0-999.999),如 "430.732"
%s -- 表示當前時刻的多少秒(0-59),如 "32"
%u -- 表示本週是今年的第幾個禮拜,以週日為第一天開始計算(0-53),如 "41"
%w -- 表示禮拜幾,(0-6, 禮拜天為0),如 "6"
%w -- 表示本週是今年的第幾個禮拜,以周一為第一天開始計算(0-53),如 "41"
%x -- 標準的日期格式,如 "10/16/04"
% x -- 標準的時間格式,如 "19:02:34"
%y -- 兩位數的年份(0-99),如 "04"
%y -- 四位數的年份,如 "2004"
%z -- 時區名,比如 "gmt"
(4)"%f",輸出當前記錄器所在的檔名稱,比如"main.cpp"
(5)"%l",輸出當前記錄器所在的檔案行號,比如"51"
(6)"%l",輸出當前記錄器所在的檔名稱和行號,比如"main.cpp:51"
(7)"%m",輸出原始資訊。
(8)"%n",換行符。
(9)"%p",輸出loglevel,比如"debug"
(10)"%t",輸出記錄器所在的執行緒id,比如 "1075298944"
(11)"%x",巢狀診斷上下文ndc (nested diagnostic context) 輸出,從堆疊中彈出上下文資訊,ndc可以用對不同源的log資訊(同時地)交叉輸出進行區分。
(12)格式對齊,比如"%-10m"時表示左對齊,寬度是10,當然其它的控制字元也可以相同的方式來使用,比如"%-12d","%-5p"等等。
(1)控制台輸出
(2)檔案輸出
實現了基本的檔案操作功能,建構函式如下:
檔名
緩衝重新整理標誌.
filename : 檔名filename : 檔名maxfilesize : 檔案的最大尺寸
maxbackupindex : 最大記錄檔案數
immediateflush : 緩衝重新整理標誌
schedule : 儲存頻度
immediateflush : 緩衝重新整理標誌
maxbackupindex : 最大記錄檔案數
log4cplus安裝測試
先介紹一下它的基本要素。layouts 布局器,控制輸出訊息的格式.如螢幕,檔案等等 logger 記錄器,儲存並跟蹤物件日誌資訊變更的實體,當你需要對乙個物件進行 記錄時,就需要生成乙個logger。categories 分類器,層次化 hierarchy 的結構,用於對被記錄資訊的分類,層次中 ...
log4cplus的使用方法
我們需要1至n個記錄器 即log4cplus logger物件。寫日誌時,需要把指定logger物件作為引數傳入。我寫了乙個類,用來建立和配置一些log4cplus logger物件。有乙個配置檔案,可以在執行時修改日誌的配置。如果缺少這個配置檔案,程式會自動生成。移植性 這個類使用了windows...
開源日誌系統 log4cplus 二
本文介紹了使用log4cplus有六個步驟,並提供了一些例子引導你了解log4cplus的基本使用。基本使用 使用log4cplus有六個基本步驟 下面通過一些例子來了解log4cplus的基本使用。using namespace log4cplus using namespace log4cplu...