首頁 > 軟體

Linux下log4cplus紀錄檔工具設定、安裝、測試

2020-06-16 17:46:36

log4cplus是C++編寫的開源的紀錄檔系統,功能非常全面,初次使用log4plus,下面介紹自己在Linux下學習log4cplus過程中的設定、安裝和測試過程。

1、log4cplus簡介

log4cplus是C++編寫的開源的紀錄檔系統,前身是java編寫的log4j系統.受Apache Software License保護。作者是Tad E. Smith。log4cplus具有執行緒安全、靈活、以及多粒度控制的特點,通過將資訊劃分優先順序使其可以面向程式偵錯、執行、測試、和維護等全生命週期; 你可以選擇將資訊輸出到螢幕、檔案、NT event log、甚至是遠端伺服器;通過指定策略對紀錄檔進行定期備份。

2、log4cplus下載

最新的log4cplus可以從以下網址下載。

log4cplus:http://sourceforge.net/projects/log4cplus/

RedHat Linux系統下可使用以下命令安裝:

wget http://sourceforeg.net/projects/log4cplus/files/log4cplus-stable/1.1.2/log4cplus-x.x.x.tar.gz

3、log4cplus安裝

tar xvzf log4cplus-x.x.x.tar.gz

cd log4cplus-x.x.x

./configure

make

make install

4、log4cplus設定

log4cplus預設安裝後標頭檔案路徑是/usr/local/include/log4cplus,庫檔案的安裝檔案路勁是/usr/local/lib,編輯.bash_profile檔案新增庫檔案。

$ vi ~/.bash_profile

新增:

LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib

export LD_LIBRARY_PATH

新增完後source ~/.bash_profile使改變生效

$ vi /etc/profile

新增:

CPLUS_INCLUDE_PATH=LD_LIBRARY_PATH:/usr/local/lib

export CPLUS_INCLUDE_PATH

新增完後source ~/.bash_profile使改變生效

5、測試

#include <log4cplus/logger.h>
#include <log4cplus/configurator.h>
#include <iomanip>
#include <log4cplus/logger.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/consoleappender.h>

#include <log4cplus/loggingmacros.h>
#include <log4cplus/layout.h>
#include <time.h>
using namespace std;
using namespace log4cplus;
Logger pTestLogger;

void writelog(char* leval,char* info)
{
struct tm *p;
time_t lt=time(NULL);
p=localtime(<);
char* timetemp=ctime(<);
*(timetemp+strlen(timetemp)-1)='';
char temp[10000];
sprintf(temp,"[%s] %s",timetemp,info);
        printf("temp==%s",temp);
printf("leval====%sn",leval);
if(memcmp(leval,"TRACE",5)==0)
printf("%d===%d",memcmp("TRACE","TRAC1E",5),memcmp(leval,"TRACE",5));
LOG4CPLUS_TRACE(pTestLogger,temp);
if(memcmp(leval,"DEBUG",5)==0)
LOG4CPLUS_DEBUG(pTestLogger,temp);
if(memcmp(leval,"INFO",4)==0)
LOG4CPLUS_INFO(pTestLogger,temp);
if(memcmp(leval,"WARN",4)==0)
LOG4CPLUS_WARN(pTestLogger,temp);
if(memcmp(leval,"ERROR",5)==0)
LOG4CPLUS_ERROR(pTestLogger,temp);
if(memcmp(leval,"FATAL",5)==0)
LOG4CPLUS_FATAL(pTestLogger,temp);
}
int main()
{
char* info="you have a iuns";
char filename[50];
struct tm *p;
time_t lt=time(NULL);
p=localtime(<);
sprintf(filename,"%d-%d-%d.txt",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
FILE* stream=fopen(filename,"wb");
SharedAppenderPtr pFileAppender(new FileAppender((filename)));
pTestLogger = Logger::getInstance(("LoggerName"));
pTestLogger.addAppender(pFileAppender);
writelog("TRACE",info);
writelog("DEBUG",info);
writelog("ERROR",info);
        return 0;
}

編譯命令

g++ filetime.cpp -I /usr/local/log4cplus/include/ -L /usr/local/log4cplus/lib -llog4cplus -o filetime


IT145.com E-mail:sddin#qq.com