1、介绍:
一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库。功能很不错。下面记录下它的编译和安装过程。
log4cxx的官方下载地址是http://logging.apache.org/log4cxx/index.html,我用的是0.10.0版本。
linux版本:centos5.3
2、下载
为了编译它,还需要两个辅助库,apr,和apr-util,可以在这里下载http://apr.apache.org/download.cgi,下载 unix版本apr-1.4.5.tar.gz 和apr-util-1.3.12.tar.gz
3、编译安装
1)第一步安装apr-1.4.5,顺序不能错,它必须首选安装
$tar zxvf apr-1.4.5.tar.gz
$cd apr-1.4.
$./configure --prefix=/usr/local
$make
$su root
$make install
2)然后安装apr-util-1.3.12
$tar zxvf apr-util-1.3.12.tar.gz
$cd apr-util-1.3.12
$./configure --prefix=/usr/local --with-apr=/usr/local/apr
$make
$su root
$make install
configure选项 --with-apr=/usr/local/apr指定apr库的位置
3)最后就可以安装log4cxx了
$tar zxvf apache-log4cxx-0.10.0.tar.gz
$cd apache-log4cxx-0.10.0
$configure --prefix==/usr/local
$make
$su root
$make install
4)添加共享链接库
export LD_LIBRARY_PATH=/usr/local/lib
OK,至此log4cxx就安装完毕了。
4、测试程序。
1)新建main.cpp文件
#include <log4cxx/logger.h> #include <log4cxx/logstring.h> #include <log4cxx/propertyconfigurator.h> int main(int argc, char* argv[]) { using namespace log4cxx; // 读取配置文件 PropertyConfigurator::configure("log4cxx.properties"); // 建立两个logger LoggerPtr logger1 = Logger::getLogger("TraceYourMama"); LoggerPtr logger2 = Logger::getLogger("Patch"); LOG4CXX_TRACE(logger1, "跟踪"); LOG4CXX_WARN(logger1, "警告"); LOG4CXX_DEBUG(logger1, "调试"); LOG4CXX_ASSERT(logger1, false, "断言"); LOG4CXX_FATAL(logger1, "致命"); LOG4CXX_TRACE(logger2, "跟踪"); LOG4CXX_ERROR(logger2, "错误"); return 0; }
编译链接2、编写 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++ -o main main.cpp -llog4cxx
$./mian