log4cxx的个人实践

Posted on 2010-09-24 10:08 子期 阅读(2280) 评论(0)  编辑  收藏

1.获取软件包

请从官方网站获得合适的版本,下载完成后解压缩到合适的目录中(目录中最好不要有空格,目录名最好是全英文的)。

 

2.获取软件包

windows下可以用VC6.0以上的版本加载log4cxx的源码,项目文件在\log4cxx\msvclog4cxx.dsw,然后选择F7build all),一般情况下都能顺利编译通过。编译结束后会有以下几个文件:

1)         log4cxx\msvc\lib下会有log4cxxs.liblog4cxx.lib,其中log4cxxs.lib是用在静态库中的,log4cxx.lib是动态的引入库

2)         log4cxx\msvc\bin\下会有log4cxx.dll,这是log4cxx做为静态库时的dll文件,必须要与可执行文件放在同一目录下。它跟log4cxx.lib是配合使用的。

 

3.项目环境设置

1)添加include目录,在“工具->选项->VC++目录->包含文件”,把log4cxxinclude目录添加进去。成功后如下图所示:

2)根据源码编译属性时使用的字符集选择合适的字符集,我这里log4cxx编译库的时候使用的是“使用多字节字符集”,所以导入的时候,“项目->属性->常规->字符集”也是需要选择“使用多字节字符集”。

3)根据引入方式的不同而进行不同的设置

   静态库的引入方式:

1.         添加引入库的依赖项:“项目->属性->链接器->输入->附加依赖项”,填入log4cxxs.libWS2_32.Lib,并把log4cxxs.lib放到该项目的根目录下。

2.         添加预编译器定义,项目->属性->配置属性->C/C++->预处理器->预处理器定义,填入LOG4CXX_STATIC。如下图所示

3.         修改运行库的调试方法,“项目->属性->C/C++->代码生成->运行时库”,选择多线程调试(/MTd),成功后如下图所示:

动态库的引入方式:

1.         添加引入库的依赖项:“项目->属性->链接器->输入->附加依赖项”,填入log4cxx.lib,并把log4cxx.lib放到该项目的根目录下。

2.         添加log4cxx\msvc\bin\下的log4cxx.dll文件拷贝到执行文件的相应目录下。

 

4.编写代码

这试我顺便写的一个测试代码,可以通过的

#include <log4cxx/config.h>

#include <stdlib.h>

#include <log4cxx/logger.h>

#include <log4cxx/basicconfigurator.h>

#include <log4cxx/propertyconfigurator.h>

#include <log4cxx/xml/domconfigurator.h>

#include <log4cxx/helpers/exception.h>

#include <log4cxx/ndc.h>

 

 

using namespace log4cxx;

using namespace log4cxx::xml;

using namespace log4cxx::helpers;

 

int main()

{

    int result = EXIT_SUCCESS;

 

    try

    {

       BasicConfigurator::configure();

       //PropertyConfigurator::configure("log4j.properties");

       //DOMConfigurator::configure( _T( "log4j.xml" ) );

      

       LoggerPtr rootLogger = Logger::getRootLogger();

       //LoggerPtr rootLogger = Logger::getLogger(_T("comm"));

 

       rootLogger->info(_T("它的确工作了"));

       rootLogger->warn(_T("错误啦!!"));

       /*

       NDC::push(_T("trivial context"));

       rootLogger->debug(_T("debug message"));

       rootLogger->info(_T("info message"));

       rootLogger->warn(_T("warn message"));

       rootLogger->error(_T("error message"));

       rootLogger->fatal(_T("fatal message"));

       */

    }

    catch(Exception&)

    {

       result = EXIT_FAILURE;

    }

    return result;

}

 

注意事项:

1)使用xml作为配置文件的时候一定要把log4j.dtdxml配置文件一起放。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 0, trackbacks - 0, articles - 16

Copyright © 子期