我們需要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...