log4cpp的安裝及使用

paw5zx發表於2024-07-15

目錄
  • 前言
  • 安裝
  • 使用
    • 示例程式碼
    • 配置檔案
    • 編譯連結
    • 輸出

前言

本文的操作均在ubuntu20.04下進行

安裝

本文僅介紹從原始碼編譯安裝log4cpp的過程。

①在開始編譯前,首先要確保系統中安裝了g++makeautoconflibtool

②下載log4cpp原始碼
下載log4cpp的特定版本並解壓,以1.1.3為例:

wget http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.3.tar.gz
tar -xvzf log4cpp-1.1.3.tar.gz

③編譯和安裝
進入log4cpp目錄,使用autoconf來配置專案並編譯安裝:

cd log4cpp
# 預設安裝
./configure
# 或指定安裝路徑
# ./configure --prefix=/path/to/file
make
make install

④檢視標頭檔案和庫檔案
預設配置安裝的log4cpp,其標頭檔案位於/usr/local/include/log4cpp/,庫檔案位於/usr/local/lib/

使用

示例程式碼

#include <string>
#include <iomanip>
#include "log4cpp/PropertyConfigurator.hh"
#include "log4cpp/Category.hh"

int main()
{
    try
    {
      log4cpp::PropertyConfigurator::configure("./cfg/log4cfg");
    }
    catch (log4cpp::ConfigureFailure& f)
    {
        std::cerr << "configure problem " << f.what() << std::endl;
        
    }
    log4cpp::Category & log = log4cpp::Category::getRoot();

    std::string s = __FILE__;
    s += " : ";
    std::ostringstream line;
    line << std::setw(4) << std::setfill('0') << __LINE__;
    s += line.str();
    s += " : ";
    std::ostringstream  buf;
    buf<< "test message"; ;
    s += buf.str();

    log.info(s);
}

配置檔案

#頂級父元素配置
log4cpp.rootCategory=INFO,console,file
#檔案輸出配置
log4cpp.appender.file=RollingFileAppender        #滾動檔案
log4cpp.appender.file.fileName=./log/data.log    #檔名稱
log4cpp.appender.file.maxFileSize=524288000      #單個檔案大小
log4cpp.appender.file.maxBackupIndex=10          #檔案儲存數量
log4cpp.appender.file.backupPattern=%Y-%m-%d    
log4cpp.appender.file.layout=PatternLayout       #layout格式
log4cpp.appender.file.layout.ConversionPattern=[%d{%Y-%m-%d %H:%M:%S,%l}](%p)<%t>%c %x: %m%n    #輸出格式

#控制檯輸出配置       
log4cpp.appender.console=ConsoleAppender
log4cpp.appender.console.layout=PatternLayout
log4cpp.appender.console.layout.ConversionPattern=[%d{%Y-%m-%d %H:%M:%S,%l}](%p)<%t>%c %x: %m%n

編譯連結

具體操作略
注意連結時要加上-llog4cpp -lpthread

輸出

輸出結果:

相關文章