1.介绍
Log4cxx是开放源代码项目Apache Logging Service的子项目之一,是Java社区著名的log4j的c++移植版,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计。有关log4cxx的更多信息可以从Apache Loggin Service的网站http://logging.apache.org获得。当前的最新版本为<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US"><font size="3">0.10.0</font></span></chsdate>,本文内容及示例代码都是基于此版本。
2.获取软件包
可以从官方网站(http://logging.apache.org/log4cxx/index.html)获取源代码,下载版本为apache-log4cxx-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">0.10.0</chsdate>,下载完成后解压缩到合适目录
3.编译
下载的原始文件包中没有包含编译后的开发库,需要自己编译生成,本文使用vc.net2003编译该源文件,编译时需要如下文件包:
apr-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.2.11</chsdate>-win32-src.zip和apr-util-1.2.10-win32-src.zip
这两个压缩包的下载地址分别如下:
http://archive.apache.org/dist/apr/apr-1.2.11-win32-src.zip
http://archive.apache.org/dist/apr/apr-util-1.2.10-win32-src.zip
下载完成后将这两个文件分别解压缩到和上面源代码相同的目录下。然后按照如下步骤进行编译:
a. 将apr-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.2.11</chsdate>-win32-src.zip解压后的文件名修改为:apr
b. 将apr-util-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.2.10</chsdate>-win32-src.zip解压后的文件名修改为:apr-util
c. 通过vc.net2003的DOS工具进入DOS窗口,此处直接在运行命令栏中输入cmd也可,不过为安全起见最后从.net2003的工具栏进入DOS界面
d. 使用cd 命令进入apache-log4cxx-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">0.10.0</chsdate>目录
e. 输入configure命令,执行configure.bat批处理文件
f. 输入configure-aprutil命令,执行configure-aprutil.bat批处理文件。
注意:由于在configure-aprutil.bat文件中使用了linux下的sed命令,所以该步可能会出现类似找不到sed命令的错误,这是由于在windows环境下编译的缘故。可以使用如下两种方法解决:1.下载一个sed for windows的工具;2.使用Cygwin;不过本人强烈推荐使用第二种方法,因为有些sed for windows的工具存在bug。关于如何在windows环境下安装Cygwin请看文章后名说明。
g. 使用vc.net2003打开Projects文件夹下的log4cxx.dsw项目,将log4cxx工程设为启动项目,然后编译即可<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
h. 编译成功后,就可以在projects的Debuge或者Release文件夹下看到lib和dll文件
4.项目环境设置
有两种方法可以设置环境:通过.net2003的工具栏或者使用工程属性栏配置,这里只介绍第二种,本文将通过下面的实例程序介绍如何使用第二种方法设置环境
5.实例代码
a.打开.net2003,新建一个空白的win32控制台工程,假设工程名为Test
b.添加一个cpp文件,文件名随便命名
c.右键点击Test工程,选择”属性”,然后在C++选项卡中添加附加库目录,注意该目录为../ apache-log4cxx-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">0.10.0</chsdate>/src/main/include
d.在属性的链接器输入选项卡的”附加依赖项”中添加” log4cxx.lib”
e.在cpp文件中输入如下测试代码:
#include <log4cxx/logger.h>
#include <log4cxx/PropertyConfigurator.h>
using namespace std;
using namespace log4cxx;
int main(int argc, char* argv[])
{
string trace = "fa";
string Property = "./log.properties";
log4cxx::PropertyConfigurator::configure(Property);
LoggerPtr logger = Logger::getLogger(trace);
logger->info(("How to use?"));
LOG4CXX_INFO(logger, ("你说hello"));
for(int i = 0; i < 2; i++)
{
LOG4CXX_DEBUG(logger, "DEBUG");
LOG4CXX_INFO(logger, "INFO");
LOG4CXX_WARN(logger, "WARN");
LOG4CXX_ERROR(logger, "ERROR");
}
return 0;
}
f.新建一个文本文件,命名为log4cxx.properties,并键入如下内容:
# 设置root logger为DEBUG级别,使用了ca和fa两个Appender
log4j.rootLogger=DEBUG, ca, fa
#对Appender fa进行设置:
# 这是一个文件类型的Appender,
# 其输出文件(File)为./output.log,
# 输出方式(Append)为覆盖方式,
# 输出格式(layout)为PatternLayout
log4j.appender.fa=org.apache.log4j.FileAppender
log4j.appender.fa.File=./output.log
log4j.appender.fa.Append=false
log4j.appender.fa.layout=org.apache.log4j.PatternLayout
log4j.appender.fa.layout.ConversionPattern=%d [%t] %-5p %<chmetcnv w:st="on" unitname="C" sourcevalue=".16" hasspace="False" negative="False" numbertype="1" tcsc="0">.16c</chmetcnv> - %m%n
#对Appender ca进行设置
# 这是一个控制台类型的Appender
# 输出格式(layout)为PatternLayout
log4j.appender.ca=org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout=org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern=%d [%t] %-5p %<chmetcnv w:st="on" unitname="C" sourcevalue=".16" hasspace="False" negative="False" numbertype="1" tcsc="0">.16c</chmetcnv> - %m%n
g. 将编译好的log4cxx.lib和log4cxx.dll及上面的log4cxx.properties文件拷贝之Test工程目录
h.编译运行该文件,可以看到控制台输出相关日志,并且在工程目录下会得到一个output.log的日志文件
6.补充说明
上面的log4cxx.properties文件为log4xxx的配置文件,该文件主要用来设置该如何生成日志文件及日志文件的格式等信息,关于配置文件的说明可以参考如下文档:
http://fanqiang.chinaunix.net/app/other/2006-06-22/4640.shtml
7.Cygwin的安装
关于Cygwin的安装可以参考如下说明http://www.cygwin.cn/site/install/。假设安装目录为D:/cygwin,安装成功后需要设置一下环境变量,可按如下步骤设置环境变量:
a. 右键点击我的电脑->属性->高级->环境变量
b. 在下面的系统变量中选择Path变量,在最后面添加D:/cygwin/bin即可
分享到:
相关推荐
库是在window平台下编译,64位,...还写了一个使用log4cxx库文件的示例程序,使用Qt编写,亲测可用,示例程序内含配置文件示例。 如果您是Qt程序源,使用该库时可直接在pro文件中加入log4cxx.pri文件即可完成库的加载。
log4cxx编译所需压缩包,和用vs2019编译好的库
在win10下面用vs2019编译的最新的apache-log4cxx-0.13.0库,里面vs工程都有,在build_win目录下面。
C++ 版本 log4cxx在windows下编译的头文件和库
windows7 可直接编译log4cxx 日志库工程环境,里面使用的是apr-1.5.2,apr-util-1.5.4
整合好的,可以直接编译通过的log4cxx环境,不用再下 1,apache-log4cxx-0.10.0.zip 2,apr-1.2.11-win32-src.zip 3,apr-iconv-1.2.1-win32-src.zip 4,apr-util-1.2.10-win32-src.zip 这些文件,也不用关心怎么...
C和C++的经典日志模块log4cxx和其开发示例源码,是apache log4j的C、C++移植类,性能强大,也是公司使用的首选。
log4cxx是apache的一款优秀的日志文件记录工具,然而,下载能够编译成功的,即log4cxx + apr + apr-util 能够兼容,编译通过的。当时就因为下载的不能够兼容,费了好的的功夫,现在把他们上传上来,供后来人使用
win10编译log4cxx-0.11.0的说明
c++ 日志工具 log4cxx编译后的的lib和dll,本人亲自编译通过。
花了3天时间,终于在Visual Studio 2015下编译通过了,附件包含apache-log4cxx-0.10.0、apr和apr-util共3个文件夹,请直接用VS2015打开apache-log4cxx-0.10.0\projects\log4cxx.sln,然后选Release,编译log4cxx即可
Log4cxx 使用编译,在2010 出现的错误解决方案。
apache-log4cxx 在vs2010下编译通过.
下载源码很多都缺少东西,整理后编译。用VS2010打开。
对开源库log4c++进行编译,过程中遇到的问题进行解释,64位编译正常使用.
log4cxx-0.10.0编译后dll,lib及头文件. 内有vs2013和vs2010两个版本. 没有源码.
自己编译的vs2015 log4cxx库,包括头文件,lib和dll,请自行下载。
在vs2010中编译log4cxx详细方法,通过详细的step by step,集成标准可用的VC下日志框架。
log4cxx是apache开源基金组织下一个很强的日志操作项目,和...本资源包含了基于vc6和vs2005编译log4cxx-0.10.0的静态库、动态库以及样例程序所需的源代码和项目工程文件,含apr基础库,并覆盖windows x86和x64平台;
已经编译好的动态库,log4cxx.dll和log4cxx.dll.lib都有,还有代码等。