例子:
系統:ubuntu12.10 .
準備:安裝log4c庫, sudo apt-get install liblog4c-dev liblog4c-doc
檔案:log.h log.c 自己將log4c重新封裝的函式
test-log.c 測試用的主函式
log4crc 配置檔案(xml,照著寫就行)
#ifndef _log_h_
#define _log_h_
#include
#include
#ifdef __cplusplus
extern "c"
#endif
#define log_pri_error log4c_priority_error
#define log_pri_warn log4c_priority_warn
#define log_pri_notice log4c_priority_notice
#define log_pri_debug log4c_priority_debug
#define log_pri_trace log4c_priority_trace
extern int log_open(const char *category);
extern void log_message(int priority ,const char* fmt, ...);
extern void log_trace(const char *file , int line , const char *func, const char *fmt ,...);
extern int log_close();
#define log_error(fmt , args...) \
log_message(log_pri_error, fmt, ##args)
#define log_warn(fmt, args...) \
log_message(log_pri_warn, fmt , ##args)
#define log_notice(fmt , args...) \
log_message(log_pri_notice, fmt , ##args)
#define log_debug(fmt , args...) \
log_message(log_pri_debug, fmt , ##args)
#define log_trace(fmt,args...) \
log_trace(__file__ , __line__ , __function__ , fmt ,## args)
#endif
#include
#include
#include "log.h"
static log4c_category_t *log_category = null;
int log_open(const char *category)
log_category = log4c_category_get(category);
return 0 ;
}
void log_message(int priority , const char *fmt , ...)
void log_trace(const char *file, int line, const char *fun,
const char *fmt , ...)
int log_close()
#include
#include "log.h"
int main(void)
//配置檔案,預設名為log4crc
<?xml version="1.0" encoding="iso-8859-1"?>
0
0
1
編譯命令:
gcc test-log.c log.c -o test-log -llog4c
執行效果
./test-log
[stdout] trace mycat - [file:test-log.c, line:7, function:main]trace
[stdout] error mycat - error
[stdout] warn mycat - warn
[stdout] notice mycat - notice
[stdout] debug mycat - hello log4c!
講解:log.h與log.c裡面用法也很簡單
log_open("category_name"); //category_name一定得是log4crc裡面已經定義的category.
關於配置檔案log4crc
更複雜的配置參見:
配置檔案的搜尋是由log4c_rcpath環境變數決定。搜尋的配置檔案名為log4crc(不知道能否改變,沒研究過)
配置檔案中category的priority不知道是什麼意思,,反正好像沒什麼用。不管設定成什麼,好像都不影響。
環境變數:
如果有什麼問題,可以一起討論下。若有什麼錯誤,請各位指出。謝謝!
轉 c 開源日誌庫log4cplus 封裝
cpp view plain copy log.h inte ce for the log class.if defined afx log h b87f71e3 ffae 4cfa a528 3f4f2ff7d69e included define afx log h b87f71e3 ffae ...
log4c 在程式中設定日誌檔名
使用過log4c的人都知道,log4c的需要引數是通過logcrc配置檔案設定的。例如 紅色字的設定的日誌檔案的名稱。如果日誌檔案名字在程式就不能改變了。我想要通過程式改變日誌檔案的名字。在網上查了一下,寫的都比較基礎。外文的資料也懶得去看。看了log4c的例子裡也沒有介紹。所以自己研究了一下原始碼...
log4cpp 日誌庫的使用
平時除錯c c程式和記錄一些程式列印資訊時,使用的最多的就是printf,但是終端顯示有限,而且不利於統計,所以想把開源的日誌庫加入到工程中 測試對比了一些日誌庫,發現log4cpp比較適合我們的工程。1 可以自由控制日誌在終端和日誌中的輸出,同時或只記錄在檔案 2 有配置檔案,只需修改配置檔案即可...