log4cpp的安装及使用

paw5zx Lv4

前言

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

安装

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

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

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

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

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

1
2
3
4
5
6
7
cd log4cpp
# 默认安装
./configure
# 或指定安装路径
# ./configure --prefix=/path/to/file
make
make install

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

使用

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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);
}

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#顶级父元素配置
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

输出

输出结果:

  • 标题: log4cpp的安装及使用
  • 作者: paw5zx
  • 创建于 : 2024-07-15 19:30:11
  • 更新于 : 2024-10-11 10:32:19
  • 链接: https://paw5zx.github.io/thirdlib-log4cpp/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论