下载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;
}