log4cpp的安装及使用

目录

前言

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

安装

本文仅介绍从源码编译安装log4cpp的过程。

①在开始编译前,首先要确保系统中安装了g++makeautoconflibtool

②下载log4cpp源码

下载log4cpp的特定版本并解压,以1.1.3为例:

bash 复制代码
wget http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.3.tar.gz
tar -xvzf log4cpp-1.1.3.tar.gz

③编译和安装

进入log4cpp目录,使用autoconf来配置项目并编译安装:

bash 复制代码
cd log4cpp
# 默认安装
./configure
# 或指定安装路径
# ./configure --prefix=/path/to/file
make
make install

④查看头文件和库文件

默认配置安装的log4cpp,其头文件位于/usr/local/include/log4cpp/,库文件位于/usr/local/lib/

使用

示例代码

cpp 复制代码
#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);
}

配置文件

text 复制代码
#顶级父元素配置
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

输出

输出结果: