log4cplus使用备忘
2016-02-01 17:30
537 查看
参考文章:/article/1939739.html
本文仅以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,文件内容如下.
执行结果:
之前我都是使用glog的,今天发现log4cplus更好用。
本文仅以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更好用。
相关文章推荐
- 1.4-原型
- connecting to controller ------LeapMotion API
- 3 广义逆矩阵
- 算法训练 集合运算
- 渲染农场
- bzoj2762 不等式组 树状数组
- Android 编码规范及代码风格
- 寄存器操作
- Java基础知识梳理
- Android 自定义Dialog以及参数的传递
- Oracle Update分批提交
- ElecAssist
- java 深入理解异常处理机制
- 接口隔离原则
- icare3.0中医生诊间开出检验检查保存提交失败--------运维日志17
- 《java设计模式》之工厂模式
- Myeclipse通过表生成实体类和注解
- 跨域请求之jQuery的ajax jsonp的使用解惑
- 浅谈XListView的使用
- 使用 pjax 实现无刷新切换页面