VS2012 Express编译log4cplus图文教程

来源:互联网 发布:网络防骗小常识 编辑:程序博客网 时间:2024/06/18 14:28

    1. 目的

    使用开源代码为应用程序添加日志功能

     

    1. 相关版本

    项目

    版本

    备注

    OS

    Win7 64位

    老掉牙

    编译器

    VS2012 Express

    Win7上的最新版本,免费

    log4cplus

    V1.1.3-rc4

    不要一味的求新

     

    1. 下载log4cplus

    http://sourceforge.net/projects/log4cplus/

    http://jaist.dl.sourceforge.net/project/log4cplus/log4cplus-stable/1.1.3/log4cplus-1.1.3-rc4.zip

     

    1. 解压文件

     

     

    解压目录可以任意选择,一般不要在目录中包含空格、中文字符等。比如我使用的位置是:

    E:\C++Workspace\log4cplus-1.2.0-rc3

     

    1. 打开工程文件(解决方案文件)

    进入msvc10目录,用vs2012 Express打开log4cplus.sln

     

    VS会提示工程文件升级,升级就是了。完成之后如下图所示。

     

    1. 编译log4cplusS

    设置解决方案的编译配置选项,解决方案配置一定要选Debug_Unicode

     

    可以编译整个解决方案,不过我只编译了log4cplusS这个工程。

    等待1分钟左右,可以在log4cplus-1.2.0-rc3\msvc10\Win32\bin.Debug_Unicode目录下找到log4cplusSUD.lib文件,文件还挺大的。

     

    库的编译工作到此结束。

     

    1. 测试源代码

    用VS2012新建一个Win32 Console Application,工程名称、位置随意,代码如下。


    #include <log4cplus/logger.h>#include <log4cplus/fileappender.h>#include <log4cplus/consoleappender.h>#include <log4cplus/layout.h><span style="background-color: rgb(255, 0, 0);">#include <log4cplus\loggingmacros.h></span> using namespace log4cplus;using namespace log4cplus::helpers;// Link Lib int _tmain(int argc, _TCHAR* argv[]){           // 定义一个控制台的Appender        SharedAppenderPtr pConsoleAppender(new ConsoleAppender());         // 定义一个简单的Layout,并绑定到Appender        std::auto_ptr<Layout> pSimpleLayout(new SimpleLayout());        pConsoleAppender->setLayout(pSimpleLayout);         // 定义Logger,并设置优先级        Logger pTestLogger = Logger::getInstance(_T("LoggerName"));           pTestLogger.setLogLevel(WARN_LOG_LEVEL);         // 将需要关联Logger的Appender添加到Logger上        pTestLogger.addAppender(pConsoleAppender);         // 输出日志信息        LOG4CPLUS_WARN(pTestLogger, "This is a <Warn> log message...");         return 0;}

    1. 设置工程的头文件及库

    将log4cplus源码中的头文件目录加入到工程中。

     


    设置库文件引用位置,即log4cplusSUD.lib所在的位置。

     

     

    将库文件添加至工程中。

     

     

    1. 运行测试代码

    到目前一切就绪,按下Ctrl+F5,看到日志信息。

     

     

    1. 后续深入学习可以参考网上其他的资料

     

    1. 问题

一个简单的工具编译竟然花了5个多小时的时间。回忆了下有以下几个问题,

  1. 编译版本

网上的教程大多是关于log4cplus-1.0.x的,到了1.1.x之后,工程结构发生了一些变化,但是没有相关的文档提示。比如之前是编译静态库的工程,工程名很明显,这个版本里就没有什么明显的提示。在试了N多次log4cplus编译失败之后,试了下log4cplusS,总算把之前出现的问题给解决了。

  1. 编译的配置

一般使用VS都是releasedebug两个版本,用这两个配置编译出来东西都是在链接的时候出错。百思不得其解啊。最后在某一篇博文的不起眼的地方看到Debug_Unicode的配置,终于在快要放弃前看到了预期的结果。而且Release_Unicode版本也无法链接成功。老外的思维有点理解不了。


12. 感想


虽然现在有了Express版的VS,一直不太喜欢微软的IDESDK,每个新版本相对前一个版本都有很大的变化。很多在前一个版本VS上编译通过的代码,到了新版本就挂了。当然这不一定是微软的问题。所以有个想法,就是开源的软件还是比较适合运行在Linux上。

做个图文教程,上传图片超累啊。。。

0 0
原创粉丝点击