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文件
[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 文件
[plain]
- # 設置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