目錄
- 前言
- 安裝
- 使用
- 示例程式碼
- 配置檔案
- 編譯連結
- 輸出
前言
本文的操作均在ubuntu20.04下進行
安裝
本文僅介紹從原始碼編譯安裝log4cpp的過程。
①在開始編譯前,首先要確保系統中安裝了g++
,make
,autoconf
和libtool
②下載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
輸出
輸出結果: