c++日志管理库log4cplus的安装

下载log4cplus安装包:https://sourceforge.net/projects/log4cplus/
 

解压:tar -xvf log4cplus-1.2.1.tar.xz

cd log4cplus-1.2.1

./ configure--prefix=/usr  (安装在/usr 目录下)

make -j8

sudo make install
/*保存在文件*/
#include <iostream> 
#include <log4cplus/loggingmacros.h>
#include <log4cplus/configurator.h> 
#include <iomanip>
#include <log4cplus/logger.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/consoleappender.h> 
#include <log4cplus/layout.h> 
#include <time.h> 
#include <stdio.h> 
#include <stdlib.h>
#include <string.h> 
using namespace std;
using namespace log4cplus;
 
int main()
{

	 SharedAppenderPtr appendPtr(new RollingFileAppender("log_text.txt",200*1024,2,true));
	 /*
	  *文件名;文件大小;文件个数;缓冲刷新标志,如果为true表示每向文件写一条记录就刷新一次缓存。
	  */
	 Logger logger = Logger::getInstance("1"); 
	 Logger logger_1 = Logger::getInstance("1.logger1"); 
	std::string pattern = "%d{%y-%m-%d %H:%M:%S}  - %m [%l] ->%m\r%n";
//	 std::string pattern = "%p-%d{%y/%m/%d %H:%M:%S-%Q}{ThreadID:%t} ->%m\r\n"; 
	 std::auto_ptr<Layout> layout_(new PatternLayout(pattern));
	 appendPtr->setLayout(layout_); 
	 logger.addAppender(appendPtr); 
	 logger.setLogLevel(ERROR_LOG_LEVEL);
	 //logger_1.setLogLevel(ALL_LOG_LEVEL);
	 int i = 1;
	 while(i--)
	 {
	 LOG4CPLUS_TRACE(logger,"Trace message");
	 LOG4CPLUS_ERROR(logger_1,"logger_1.ERROR message");
	 LOG4CPLUS_DEBUG(logger,"Debug message");
	 LOG4CPLUS_INFO(logger,"Info message");
	 LOG4CPLUS_WARN(logger,"Warning message");
	 LOG4CPLUS_ERROR(logger,"Error message ");
	 LOG4CPLUS_FATAL(logger,"fatal message");
	 }
	 return 0;

}
/*显示在屏幕上*/
#include <iostream>
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/layout.h>
using namespace log4cplus;
using namespace log4cplus::helpers;
int main()
{
	/* step 1: Instantiate an appender object */
	SharedObjectPtr<Appender> _append (new ConsoleAppender());
	_append->setName("append for test");
	/* step 2: Instantiate a layout object */
	std::string pattern = "%d{%m/%d/%y %H:%M:%S}  - %m [%l]%n";
	std::auto_ptr<Layout> _layout(new PatternLayout(pattern));
	/* step 3: Attach the layout object to the appender */
	_append->setLayout( _layout );
	/* step 4: Instantiate a logger object */
	Logger _logger = Logger::getInstance("test");
	/* step 5: Attach the appender object to the logger  */
	_logger.addAppender(_append);
	/* step 6: Set a priority for the logger  */
	_logger.setLogLevel(ALL_LOG_LEVEL);
	/* log activity */ 
	LOG4CPLUS_DEBUG(_logger, "This is the FIRST log message");
//		sleep(1);
	LOG4CPLUS_WARN(_logger, "This is the SECOND log message");
		return 0;
}

猜你喜欢

转载自blog.csdn.net/yuhuqiao/article/details/87930945
今日推荐