ubuntu下log4cxx安裝使用

2022-02-02 09:27:27 字數 2303 閱讀 7151

需要安裝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 #include 

#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檔案的內容:

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 ...