log4cplus的使用方法

2021-08-25 02:55:47 字數 2469 閱讀 2084

我們需要1至n個記錄器——即log4cplus::logger物件。寫日誌時,需要把指定logger物件作為引數傳入。我寫了乙個類,用來建立和配置一些log4cplus::logger物件。有乙個配置檔案,可以在執行時修改日誌的配置。如果缺少這個配置檔案,程式會自動生成。

移植性:這個類使用了windows c執行時的api。這個類能適配mbcs或unicode字符集。

標頭檔案:

extern log4cplus::logger logmain;

extern log4cplus::logger logtracemsg;

extern log4cplus::logger logtracelisten;

class customlog

;

原始檔:

log4cplus::logger logmain;

log4cplus::logger logtracemsg;

log4cplus::logger logtracelisten;

customlog customlog::m_instance;

#ifdef _debug

const log4cplus_char_t* customlog::cfgfilename = log4cplus_text("logdebug.cfg");

const char* customlog::strconfig = \

"log4cplus.logger.logmain = debug , file\n"

"log4cplus.logger.logtracemsg = info , file1\n"

"log4cplus.logger.logtracelisten = info , file1\n"

#else

const log4cplus_char_t* customlog::cfgfilename = log4cplus_text("logrelease.cfg");

const char* customlog::strconfig = \

"log4cplus.logger.logmain = info , file\n"

"log4cplus.logger.logtracemsg = info , file1\n"

"log4cplus.logger.logtracelisten = info , file1\n"

#endif

customlog::customlog()

customlog* customlog::instance()

customlog::~customlog()

void customlog::initlog()

else

// 初始化日誌模組

log4cplus::initialize ();

log4cplus::helpers::loglog::getloglog()->setinternaldebugging(true);

log4cplus::tstring file(cfgfilename);

log4cplus::helpers::fileinfo fi;

log4cplus_char_t ***epathname[max_path]=;

::getmodulefilename(null,***epathname,max_path);

log4cplus_char_t sdrive[10]=;

log4cplus_char_t sdir[max_path]=;

log4cplus_char_t sname[50]=;

log4cplus_char_t ***t[10]=;

_tsplitpath_s (***epathname,sdrive,sdir,sname,***t);

log4cplus::tstring strcfgfile(sdrive);

strcfgfile += sdir;

strcfgfile += cfgfilename;

_tprintf_s(log4cplus_text("cfg file:%s\n"),strcfgfile.c_str());

if (getfileinfo (&fi, strcfgfile) == 0)

else }

logmain = log4cplus::logger::getinstance(log4cplus_text("logmain"));

logtracemsg = log4cplus::logger::getinstance(log4cplus_text("logtracemsg"));

logtracelisten = log4cplus::logger::getinstance(log4cplus_text("logtracelisten"));

}void customlog::cleanthreaddata()

log4cplus安裝測試

先介紹一下它的基本要素。layouts 布局器,控制輸出訊息的格式.如螢幕,檔案等等 logger 記錄器,儲存並跟蹤物件日誌資訊變更的實體,當你需要對乙個物件進行 記錄時,就需要生成乙個logger。categories 分類器,層次化 hierarchy 的結構,用於對被記錄資訊的分類,層次中 ...

windows下使用log4cplus教程

編譯生成dll如下圖所示。log4cplus預設使用多位元組字符集,而vs新建專案預設使用unicode字符集,如果不修改此處,則後面新建專案使用生成的dll時需要手動修改新建的專案為多位元組字符集,否則會報錯,總之兩邊統一用一種即可 然後,編譯專案生成log4cplusd.dll 和log4cpl...

開源日誌系統 log4cplus 二

本文介紹了使用log4cplus有六個步驟,並提供了一些例子引導你了解log4cplus的基本使用。基本使用 使用log4cplus有六個基本步驟 下面通過一些例子來了解log4cplus的基本使用。using namespace log4cplus using namespace log4cplu...