需要安裝log4cxx,安裝的過程中可是充滿了坎坷。。。最大的問題是在make log4cxx時,總是報undefined xml什麼什麼的錯誤,查了一下也沒解決了,然後把apr-utils刪了重新裝了一下就好了。。
log4cxx現在是apache的乙個專案,用來記錄日誌。看名字就知道,是給c++使用的。
環境(在以下2個環境中進行驗證測試):
gcc (ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
gcc (gcc) 4.4.7 20120313 (red hat 4.4.7-16)
log4cxx依賴於apache 的 apr 和 apr-util,所以安裝順序是: apr, apr-util, log4cxx。
apr:
apr-util:
log4cxx:
2.安裝apr
#tar xzvf apr-1.5.2.tar.bz2
#cd apr-1.5.2
#./configure --prefix=/usr/local/apr
#make
#make install
3.安裝apr-util
#tar xzvf apr-util-1.5.4.tar.bz2
#cd apr-util-1.5.4
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make
#make install
4.安裝log4cxx
#tar xzf apache-log4cxx-0.10.0.tar.gz
#cd apache-log4cxx-0.10.0
log4cxx直接make會報類似error: 『memmove』 was not declared in this scope的錯誤,參考前人的工作,修改以下原始檔:
src/main/cpp/inputstreamreader.cpp 新增 #include
src/main/cpp/socketoutputstream.cpp 新增 #include
src/examples/cpp/console.cpp 新增 #include #include
#./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
#make
#make install
5.把編譯後的庫載入到環境變數中(實際使用和發布使用log4cx庫需要其他更多的工作)
export ld_library_path=/usr/local/apr/lib/:/usr/local/apr-util/lib/:/usr/local/log4cxx/lib/
6.測試**
test.cpp
#include #includetest.properties檔案的內容:#include
#include
using
namespace
std;
using
namespace
log4cxx;
using
namespace
log4cxx::helpers;
static
const
string conf_log_file = "
/home/fg/src/work/test/test.properties";
loggerptr logger(logger::getrootlogger());
int main(void)
catch (exception &)
return0;
}test.cpp
test.properties
log4j.rootlogger=info, file
7.編譯:
g++ -o test0 test.cpp -l/usr/local/log4cxx/lib -llog4cxx -i/usr/local/log4cxx/include
執行:
./test
可以看到生成了log.dat檔案,裡面寫入了log4cxx_info()輸出的日誌內容。
ubuntu下log4cxx安裝使用
需要安裝log4cxx,安裝的過程中可是充滿了坎坷。最大的問題是在make log4cxx時,總是報undefined xml什麼什麼的錯誤,查了一下也沒解決了,然後把apr utils刪了重新裝了一下就好了。log4cxx現在是apache的乙個專案,用來記錄日誌。看名字就知道,是給c 使用的。環...
log4cxx配置案例
先看完整配置檔案log4cxx.properties html view plain copy log4j.additivity.gather false log4j.rootlogger debug r,stdout 設定子logger log4j.logger.lib a debug ap1,s...
log4cxx日誌系統
本文主要從log4cxx級別 layout 格式化 命名規則 filter幾個方面介紹。一 log4cxx命名規則 logger由乙個string類的名字識別,logger的名字是大小寫敏感的,且名字之間具有繼承的關係,子名有父名作為字首,用點號.分隔。如 x.y是x.y.z的父親。根logger ...