参考文章:http://blog.csdn.net/augusdi/article/details/8989728
本文仅以log4plus静态库的编译使用做个初步了解。
我下载到的源代码为log4cplus-1.2.0.7z。解压后(我的解压路径D:\CloudSync\Source\Common\)使用vs2010打开log4cplus-1.2.0\msvc10下的log4cplus.sln,然后批生成即可。
注意运行库的选择和你的项目的选择一致,推荐都使用MDd,MD.
生成的库文件路径为
D:\CloudSync\Source\Common\log4cplus-1.2.0\msvc10\Win32\bin.Debug
D:\CloudSync\Source\Common\log4cplus-1.2.0\msvc10\Win32\bin.Release
D:\CloudSync\Source\Common\log4cplus-1.2.0\msvc10\Win32\bin.Debug_Unicode
D:\CloudSync\Source\Common\log4cplus-1.2.0\msvc10\Win32\bin.Release_Unicode
使用VS2010新建项目为log4cplusTest空控制台项目,默认是unicode编码,MDd。
项目附加包含目录添加D:\CloudSync\Source\Common\log4cplus-1.2.0\include
Debug版本项目附加库目录添加D:\CloudSync\Source\Common\log4cplus-1.2.0\msvc10\Win32\bin.Debug_Unicode。
附加依赖项添加log4cplusSUD.lib,预处理器添加LOG4CPLUS_STATIC;
然后添加新建项:main.cpp,文件内容如下.
#include "log4cplus/loggingmacros.h"
#include "log4cplus/logger.h"//定义Log对象
#include "log4cplus/fileappender.h"//输出到文件
#include "log4cplus/layout.h"//输出格式
using namespace log4cplus;
using namespace log4cplus::helpers;
#include <string>
#include <vector>
using std::string;
using std::vector;
void main()
{
//定义文件Appender
SharedAppenderPtr pRollingFileAppender(new RollingFileAppender(LOG4CPLUS_TEXT("./log/log.log"), 200*1024, 5, true,true));
//定义Layout,并绑定到Appender上
log4cplus::tstring pattern = LOG4CPLUS_TEXT("%D{%Y/%m/%d %H:%M:%S,%Q} %p\t%% %m %% %n");
pRollingFileAppender->setLayout(std::auto_ptr<Layout>(new PatternLayout(pattern)));
//定义Logger
Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("LoggerName"));
//设置Logger优先级
logger.setLogLevel(INFO_LOG_LEVEL);
//将需要关联Logger的Appender添加到Logger上
logger.addAppender(pRollingFileAppender);
for (int i = 0; i < 8000; i++)
{
//输出日志信息
LOG4CPLUS_INFO(logger, "this is a info log...");
LOG4CPLUS_DEBUG(logger, "this is a debug log...");
LOG4CPLUS_ERROR(logger, "this is a error log...");
LOG4CPLUS_WARN(logger, "this is a warn log...");
LOG4CPLUS_WARN_FMT(logger, _T("loop:%d asdfdsgdfgs"), i);
}
return;
}
执行结果:
之前我都是使用glog的,今天发现log4cplus更好用。