VS2010编译log4cpp日志库
log4cpp是一种可灵活记录日志到文件、系统日志、IDSA和其他目的地的C++类库。
编译log4cpp
- log4cpp下载。下载地址:here
- 解压。
- 使用VS2010打开解压目录\log4cpp\msvc10\msvc10.sln。
- 在项目(log4cppLIB)上右键生成,等待生成完成。
- 这时在解压目录\log4cpp\msvc10\log4cppLIB\Debug下生成了log4cppD.lib文件。
拷贝log4cppD.lib文件到新目录(例:D:\LogFramework\log4cpp-1.1.3-r\lib)下,拷贝解压目录\log4cpp\include下的log4cpp文件夹到新目录(例:D:\LogFramework\log4cpp-1.1.3-r\include)下。
更正:以上配置在加载配置文件时会出现无法解析的错误。从第四点开始修改。
4.在项目(log4cpp)上右键debug生成,等待生成完成。
5.这时在解压目录\log4cpp\msvc10\log4cpp\Debug下生成了log4cpp.lib文件和log4cpp.dll文件。
6.拷贝log4cpp.lib文件和log4cpp.dll到新目录(例:D:\LogFramework\log4cpp-1.1.3-r\lib)下,拷贝解压目录\log4cpp\include下的log4cpp文件夹到新目录(例:D:\LogFramework\log4cpp-1.1.3-r\include)下。
配置环境
- 配置环境变量。新建 LOG4CPP_HOME 值为 D:\LogFramework\log4cpp-1.1.3-r(log4cppD.lib所在目录的父级目录);在path中添加:%LOG4CPP_HOME%\lib。
- 在vs2010项目属性中配置:配置属性->C/C++->常规中的附加包含目录中添加:$(LOG4CPP_HOME)\include ;配置属性->链接器->常规中的附加库目录中添加:$(LOG4CPP_HOME)\lib ;配置属性->链接器->输入中的添加依赖项中添加:log4cppD.lib。
测试
#include "log4cpp/Category.hh"
#include "log4cpp/OstreamAppender.hh"
#include "log4cpp/BasicLayout.hh"
#include "log4cpp/Priority.hh"
#include <iostream>
using log4cpp::Category;
using log4cpp::OstreamAppender;
using log4cpp::BasicLayout;
using log4cpp::Priority;
using std::cout;
int _tmain(int argc, _TCHAR* argv[])
{
OstreamAppender* osAppender = new OstreamAppender("osAppender", &cout);
osAppender->setLayout(new BasicLayout());
Category& root = Category::getRoot();
root.addAppender(osAppender);
root.setPriority(Priority::DEBUG);
root.error("Hello log4cpp in a Error Message!");
root.warn("Hello log4cpp in a Warning Message!");
Category::shutdown();
system("pause");
return 0;
}
运行结果
注:
1、在项目(log4cpp)上右键release编译会生成release版本的log4cpp.lib文件和log4cpp.dll,和debug版本生成的文件名完全一样。
2、若在拷贝时只拷贝log4cpp.lib文件到对应lib目录中,则会报找不到log4cpp.dll。