【IT168 专稿】Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
1、Log4cpp简介
Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。其类似的支持库还包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(log4p)等。
Log4cpp有如下优点:
• 提供了可扩展的多种日志记录方式;
• 提供了NDC(嵌套诊断上下文),可用于多线程、多场景的跟踪调试;
• 提供了完整的日志动态优先级控制,可随时调整需要记录的日志优先级;
• 可通过配置文件完成所有配置并动态加载;
• 性能优秀,内存占用小,经过编译后的log4cpp.dll大小仅有160kb;
• 代码级的平台无关性,Log4cpp源代码经过编译后,适用于大多数主流的操作系统和开发工具;
• 概念清晰,学习和使用方便,熟练程序员一天之内即可很好地应用log4cpp进行开发。
2、下载和安装
2.1 下载
Log4cpp的主页为:http://sourceforge.net/projects/log4cpp/
下载版本0.3.5rc3,这个版本目前是最稳定的,版本1.0在VC中表现不稳定。下载后的包名字为:log4cpp-0.3.5rc3.tar.gz(源代码包)和log4cpp-docs-0.3.5rc3.tar.gz(文档压缩包)。将它们解压后放入D盘。
2.2 在VC6中编译Log4cpp
进入D:\log4cpp-0.3.5rc3\msvc6目录,打开VC6的工作区msvc6.dsw,将其中的工程都删除,只保留log4cpp和log4cppDLL两个工程。分别编译它们的Debug和Release版本。
在VC6中编译Log4cpp会报错,其实只有一个错误,即不能在头文件中定义变量,同时给变量赋默认值。修改方法如下:将头文件Priority.hh中的这一行:
改为:
并在Priority.cpp中的所有include语句后加上:
编译链接成功后会得到log4cppD.dll、log4cppD.lib(Debug版的dll和lib文件)和log4cpp.dll、log4cpp.lib(Release版的dll和lib文件)。新建目录D:\log4cpp-0.3.5rc3\lib,将以上四个文件拷贝到该目录下。
在VC中添加设置lib和include路径。
将D:\log4cpp-0.3.5rc3\lib加入系统的Path路径中。
2.3 例子程序
本文包含了大量的例子程序,这些程序被组织为多个工程,并放入了一个名为WxbLogDsw的VC工作区。所有代码被打包为一个名为WxbLogDsw.rar的压缩文件,解压后可在VC6以上版本中打开此工程并进行编译运行。