log4cplus的按日生成檔案,配置例子

2021-05-22 00:35:51 字數 3393 閱讀 4017

奇怪的是在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       : 檔名

maxfilesize    : 檔案的最大尺寸

maxbackupindex : 最大記錄檔案數

immediateflush : 緩衝重新整理標誌

filename       : 檔名

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...