到apache页面()下载下列三个文件:
apr-*-win32-src.zip
apr-util-*-win32-src.zip
apr-iconv-*-win32-src.zip
另外,下载apache-log4cxx-0.10.0.tar.gz
下载完成后将这三个文件分别解压缩到和上面源代码相同的目录下。然后按照如下步骤进行编译:
a. 将apr-*-win32-src.zip解压后的文件名修改为:apr
b. 将apr-util-*-win32-src.zip解压后的文件名修改为:apr-util
c. 将apr-iconv-*-win32-src.zip解压后的文件名修改为:apr-iconv
d. 将apache-log4cxx-0.10.0.tar.gz解压后的文件名修改为:log4cxx
现在目录结构看起来如下:
D:\log4cpp.compile\
|_ apr
|_ apr-iconv
|_ apr-util
|_ log4cxx
e、打开D:\log4cpp.compile\apr\apr.dsw 编译
f、打开D:\log4cpp.compile\apr-iconv\apriconv.dsp 编译
g、通过vcVS2008的DOS工具进入DOS窗口,此处直接在运行命令栏中输入cmd也可,不过为安全起见最后从VS2008的工具栏进入DOS界面
h、进入 D:\log4cpp.compile\log4cxx ,执行configure.bat configure-aprutil.bat 两个批处理
D:\log4cpp.compile\log4cxx>configure.bat
D:\log4cpp.compile\log4cxx>configure-aprutil.bat
注意:由于在configure-aprutil.bat文件中使用了linux下的sed命令,
所以该步可能会出现类似找不到sed命令的错误,这是由于在windows环境下编译的缘故。
去这个页面 下载 sed,
先安装上sed后再执行 configure-aprutil.bat
i、打开D:\log4cpp.compile\log4cxx\projects\log4cxx.dsw 编译
如果出现类似找不到 apr_icove*函数的问题,
请在log4cxx的项目属性里添加下面的链接lib(包括括号) 链接器->输入->附加依赖项
"..\..\apr-iconv\libd\apriconv-1.lib"
2.实例代码
a.打开.net2003,新建一个空白的win32控制台工程,假设工程名为Test
b.添加一个cpp文件,文件名随便命名
c.右键点击Test工程,选择”属性”,然后在C++选项卡中添加附加库目录,注意该目录为../ apache-log4cxx-0.10.0\src\main\include
d.在属性的链接器输入选项卡的”附加依赖项”中添加” log4cxx.lib”
e.在cpp文件中输入如下测试代码:
#include
#include
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("info, How to use?");
logger->debug("debug, How to use?");
logger->warn("warn, How to use?");
logger->error("error, How to use?");
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 %.16c - %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 %.16c - %m%n
g. 将编译好的log4cxx.lib和log4cxx.dll及上面的log4cxx.properties文件拷贝之Test工程目录
h.编译运行该文件,可以看到控制台输出相关日志,并且在工程目录下会得到一个output.log的日志文件
参考文档:
http://blog.csdn.net/houghstc/archive/2009/07/08/4332621.aspx