前言
本文的操作均在ubuntu20.04下进行
安装
本文仅介绍从源码编译安装log4cpp的过程。
①在开始编译前,首先要确保系统中安装了g++
,make
,autoconf
和libtool
②下载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
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
输出
输出结果: