Log工具 Log4c 使用

2021-06-12 22:43:13 字數 2650 閱讀 7319

構建工程,加入assert.h|cpp, datalog.h|cpp,開始修改**和編譯,難度也不會很大。

出處:最近想找個好用的log工具,比較了一下流行的開源log工具log4c,log4cpp, log4cxx等,覺得還是log4c比較合適。

log4cxx需要依賴於apr。

log4cpp較log4c移植性稍差些。

log4c基本上都是一些純c的東西,移植性比其他二者都要好。

上述工具都很優秀,但用熟練一種工具足以,這樣有助於提高效率,以後如果有什麼滿足不了需要的在考慮其他。

在c專案或是c++專案中都是可以使用log4c,恩,就是它了。

log4c基本概念

log4c使用和其他log4j系工具一樣直截了當。

1

//初始化

2log4c_init();3//

獲取乙個已有的category

4log4c_category_t

*mycat

=log4c_category_get(

"mycat

"); 5//

用該category進行日誌輸出,優先順序為debug,輸出資訊為 "hello world!"

6log4c_category_log(mycat, log4c_priority_debug,

"hello world!

");

log4c和所有log4j系的log工具一樣,都是可以通過檔案配置log特性的。其配置檔案採用xml形式,通常叫做log4crc。通過修改log4crc,可以達到配置log4c的目的。

以上**片段其對應的log4crc可以是

1

xml version="1.0" encoding="iso-8859-1"

?>

2doctype log4c system ""

>34

<

log4c

version

="1.2.1"

>

5<

config

>

6<

bufsize

>

0bufsize

>

7<

debug

level

="2"

/>

8<

nocleanup

>

0nocleanup

>

9<

reread

>

1reread

>

10config

>

11....

12<

category

name

="mycat"

priority

="debug"

="stdout"

/>

13<

name

="stdout"

type

="stream"

layout

="basic"

/>

14<

layout

name

="basic"

type

="basic"

/>

15log4c

>

看其log的優先順序定義,共有11個。

1

typedef

enum

log4c_priority_level_t;

實際上,我覺的用不了那麼多優先順序,有差不多5個就夠了,比如最典型的幾個吧,error, warn, info, debug, trace。

1/*2

* logger.h3*

4* created on:

5* author: lijy6*/

78#ifndef logger_h_

9#define

logger_h_

1011

#include

"log4c.h"12

13#define

log_error(category, msg, args...) \

1418

19#define

log_warn(category, msg, args...) \20

2425

#define

log_info(category, msg, args...) \

2630

31#define

log_debug(category, msg, args...) \

3236

37#define

log_trace(category, msg, args...) \

3842

43#endif

/* logger_h_ */

ok,現在同樣是輸出乙個"hello world!",比較下用巨集擴充套件前後的差別吧

log4c_category_log(mycat, log4c_priority_debug, "hello world!");     <==>

log_debug(mycat, "hello world!")

應該能少敲不少**吧。

log4c 如何編譯到ARM板子上去使用

1 編譯到x86環境,正常步驟如下 configure prefix usr local make make install 2 如果不想依賴expat解析器,我們可以加 without expat 3 如果我們要指定軟體執行的系統平台,交叉環境下,我們可以用 host選項來設定,如果執行在arm平...

使用Log4j日誌工具

步驟2 建立log4j.properties 檔案 注意,必須放在soruce folder資料夾下。檔案內容如下 注釋 logfile 指輸出到檔案 o 表示輸出到控制台 log4j.rootlogger debug,logfile,o 把日誌資訊輸出到控制台 步驟3 建立乙個logger 物件 ...

log4c 在程式中設定日誌檔名

使用過log4c的人都知道,log4c的需要引數是通過logcrc配置檔案設定的。例如 紅色字的設定的日誌檔案的名稱。如果日誌檔案名字在程式就不能改變了。我想要通過程式改變日誌檔案的名字。在網上查了一下,寫的都比較基礎。外文的資料也懶得去看。看了log4c的例子裡也沒有介紹。所以自己研究了一下原始碼...