下载log4cplus
最新的log4cplus可以从以下网址下载 http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/ 本文使用的版本为:1.1.3
编译生成dll
下载完成后解压,打开log4cplus.sln文件,选择log4cplus项目,右键-》属性-》配置属性-》字符集,选择Unicode字符集,如下图所示。(log4cplus默认使用多字节字符集,而VS新建项目默认使用Unicode字符集,如果不修改此处,则后面新建项目使用生成的dll时需要手动修改新建的项目为多字节字符集,否则会报错,总之两边统一用一种即可)
然后,编译项目生成log4cplusD.dll和log4cplusD.lib文件,在msvc10\Win32\bin.Debug目录下,如果使用静态库的编译下面一个log4cplusS的项目,本文中采用动态链接库的形式。
使用dll
新建一个解决方案和项目,将下载文件中的include文件夹复制到新建的解决方案文件夹中,并在项目-》属性-》C/C++ -》常规 的附加包含目录增加刚复制的include文件夹路径,如下图所示
复制刚才生成的log4cplusD.dll和log4cplusD.lib文件到解决方案中,我新建了一个lib的文件夹,并在项目-》属性-》链接器 -》常规 的附加库目录中增加该路径,如下图所示
接着继续选择项目-》属性-》链接器 -》输入,在附加依赖项中增加log4cplusD.lib 如下图所示
最后,在项目-》属性-》调试 的环境下增加 PATH=你的lib文件夹所在路径,如下图所示
当然,也可以直接把include和lib、dll放到开发环境系统下相应的目录中,这样就不需要配置上述几个路径,只需要配置一下依赖项,编译器也能找到这些文件。
编程测试
这里直接使用了示例中fileappender_test的代码,目前我的项目中使用的就是记录到文件的,测试了下没有问题,其他的没有测试,下面是代码
#include <log4cplus/logger.h> #include <log4cplus/fileappender.h> #include <log4cplus/layout.h> #include <log4cplus/ndc.h> #include <log4cplus/helpers/loglog.h> #include <log4cplus/loggingmacros.h> using namespace log4cplus; const int LOOP_COUNT = 20000; int main() { log4cplus::initialize (); helpers::LogLog::getLogLog()->setInternalDebugging(true); SharedAppenderPtr append_1( new RollingFileAppender(LOG4CPLUS_TEXT("Test.log"), 5*1024, 5)); append_1->setName(LOG4CPLUS_TEXT("First")); append_1->setLayout( std::auto_ptr<Layout>(new TTCCLayout()) ); Logger::getRoot().addAppender(append_1); Logger root = Logger::getRoot(); Logger test = Logger::getInstance(LOG4CPLUS_TEXT("test")); Logger subTest = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest")); for(int i=0; i<LOOP_COUNT; ++i) { NDCContextCreator _context(LOG4CPLUS_TEXT("loop")); LOG4CPLUS_DEBUG(subTest, "Entering loop #" << i); } return 0; } 最后编译运行即可,如果运行出现找不到dll的问题,再复制一份lib和dll到你生成的exe所在目录下即可解决。运行的结果是项目路径下Test.log,Test.log.1~Test.log.5五个文件,可以打开看里面的内容。 --------------------- 作者:xinyunyxq 来源:优快云 原文:https://blog.youkuaiyun.com/xinyunyxq/article/details/19011315?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!