1、下载Log4cplus库,下载地址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/
我下载的版本是 2.0.5,使用环境是VS2017。
2、配置:
(1)进入到 log4cplus-2.0.5\msvc14目录下,运行log4cplus.sln解决方案。
(2) 编译log4cplus工程:主要注重3点:1是解决方案的平台,可以编译成X64,也可以编译成X86,但是要跟目标程序一致;2是编译成debug或是release版本,也要和目标程序保持一致;3是属性里面的字符集和目标程序保持一致。
(3)编译完成后,会在log4cplus-2.0.5\msvc14\x64\bin.Debug文件夹下生成我们需要的log4cplusD.lib和log4cplusD.dll两个文件(我编译的是debug版)。
3、目标程序的配置:将log4cplus-2.0.5目录下的include文件夹拷贝到我们的目标程序文件夹中,这里面是我们需要的头文件;在目标程序的属性里面设置头文件的包含目录,设置lib文件的库目录以及将lib文件填入附加依赖项;将dll文件放到程序的根目录:如果运行的是VS放置到和*.vcxproj一个文件夹下,如果运行的是*.exe,则和*.exe放置到一个文件夹下。
4、简单测试:
#include <log4cplus/logger.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/layout.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/ndc.h>
#include <log4cplus/configurator.h>
using namespace log4cplus;
using namespace log4cplus::helpers;
int main()
{
//1、初始化一个appender对象
Appender *pAppender = new ConsoleAppender();
SharedObjectPtr<Appender> _appender(pAppender);
//SharedObjectPtr<Appender> _appender(new ConsoleAppender());---is ok
_appender->setName("appender for test");
//2、初始化一个layout对象
std::string pattern = "%D:%d{%q} - %m [%t][%F:%L]%n";
Layout *playout = new PatternLayout(pattern);
std::unique_ptr<Layout> _layout(playout);
//3、将layout绑定到appender对象
_appender->setLayout(std::move(_layout));
//4、初始化一个logger对象
Logger logger = Logger::getInstance("test");
//5、将appender对象绑定到logger对象
logger.addAppender(_appender);
//6、设置级别
logger.setLogLevel(ALL_LOG_LEVEL);
//输出日志
LOG4CPLUS_DEBUG(logger, "This is a debug message.");
Sleep(100);
LOG4CPLUS_WARN(logger, "This is a warn message.");
}