Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

RedHat/CentOS 安裝 log4cxx 日誌庫完整實戰:依賴解決、編譯安裝與測試驗證

編輯:關於 Linux

Apache log4cxx 是 C++ 版 log4j 移植,廣泛用於企業級專案。但其安裝需解決 apr、apr-util 依賴鏈,且預設安裝至 /usr/local 需 root 權限。本文記錄完整編譯安裝流程、權限處理、環境變數配置與測試驗證,避開常見坑點。

一、軟體版本與依賴關係

元件版本 (示例)角色下載來源
APR1.7.0+可移植運行時核心APR 官網
APR-util1.6.1+APR 擴展工具 (XML、DBD 等)APR-util 官網
log4cxx0.13.0+日誌框架主體log4cxx 官網

安裝順序鐵律: APR → APR-util → log4cxx (後者依賴前者的編譯產物)。

二、編譯安裝標準流程 (以普通用戶安裝至家目錄為例)

1. 準備工作目錄

mkdir -p ~/build/log4cxx
cd ~/build/log4cxx
# 下載三個 tarball 放入此目錄

2. 安裝 APR

tar -xzf apr-1.7.0.tar.gz
cd apr-1.7.0
./configure --prefix=$HOME/.local/apr
make -j$(nproc)
make install
cd ..

3. 安裝 APR-util (指定 APR 路徑)

tar -xzf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=$HOME/.local/apr-util \
            --with-apr=$HOME/.local/apr
make -j$(nproc)
make install
cd ..

4. 安裝 log4cxx (關鍵:指定 APR 與 APR-util 路徑)

tar -xzf apache-log4cxx-0.13.0.tar.gz
cd apache-log4cxx-0.13.0
./configure --prefix=$HOME/.local/log4cxx \
            --with-apr=$HOME/.local/apr \
            --with-apr-util=$HOME/.local/apr-util
make -j$(nproc)
make install
cd ..

三、環境變數配置 (關鍵步驟!)

編輯 ~/.bashrc (或 ~/.bash_profile) 追加:

export LOG4CXX_HOME=$HOME/.local/log4cxx
export PATH=$LOG4CXX_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LOG4CXX_HOME/lib:$HOME/.local/apr/lib:$HOME/.local/apr-util/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$LOG4CXX_HOME/lib/pkgconfig:$HOME/.local/apr/lib/pkgconfig:$HOME/.local/apr-util/lib/pkgconfig:$PKG_CONFIG_PATH
export CPLUS_INCLUDE_PATH=$LOG4CXX_HOME/include:$HOME/.local/apr/include/apr-1:$HOME/.local/apr-util/include/apr-1:$CPLUS_INCLUDE_PATH

執行 source ~/.bashrc 生效。

四、編譯測試程式驗證

測試碼 test_log4cxx.cpp:

#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/helpers/exception.h>

using namespace log4cxx;
using namespace log4cxx::helpers;

LoggerPtr logger(Logger::getLogger("TestLogger"));

int main() {
    BasicConfigurator::configure();
    LOG4CXX_INFO(logger, "log4cxx 安裝測試成功!");
    LOG4CXX_WARN(logger, "這是一條警告訊息。");
    return 0;
}

編譯指令 (手動指定路徑,不依賴 pkg-config):

g++ -std=c++11 -I$LOG4CXX_HOME/include \
    -I$HOME/.local/apr/include/apr-1 \
    -I$HOME/.local/apr-util/include/apr-1 \
    -L$LOG4CXX_HOME/lib -L$HOME/.local/apr/lib -L$HOME/.local/apr-util/lib \
    -o test_log4cxx test_log4cxx.cpp \
    -llog4cxx -laprutil-1 -lapr-1 -lpthread -ldl

執行:

./test_log4cxx

若輸出帶時間戳、級別的日誌行,安裝成功。

五、常見錯誤與解決

錯誤現象原因解決
configure: error: APR not found未指定 --with-apr補上正確路徑
fatal error: apr.h: No such file編譯時未包含 APR 標頭加 -I 路徑
undefined reference to `apr_...`連結時缺少 APR 庫加 -L 路徑與 -lapr-1
執行時報 liblog4cxx.so: cannot open shared object file執行時找不到動態庫確認 LD_LIBRARY_PATH 包含所有 lib 目錄
權限不足安裝至 /usr/local無 root 權限改用 --prefix=$HOME/.local/xxx 安裝至用戶目錄

六、生產環境部署建議

  • 統一由套件管理器安裝:yum install log4cxx-devel (EPEL) 或 apt-get install liblog4cxx-dev,避免手動編譯維護成本。
  • 若必須手動編譯,建議安裝至 /opt/log4cxx,建立 /etc/ld.so.conf.d/log4cxx.conf 執行 ldconfig,並編寫 /etc/profile.d/log4cxx.sh 統一環境變數。
  • 專案建議使用 CMake find_package(log4cxx REQUIRED) 自動偵測路徑,而非硬編碼編譯旗標。

核心心法:「依賴鏈順序不可亂、環境變數缺一不可、測試程式要能跑」。log4cxx 安裝雖繁瑣,但按步驟執行、逐項驗證,一定能成功。

Copyright © Windows教程網 All Rights Reserved