log4cpp的安装及使用
前言
本文的操作均在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
输出
输出结果:
log4cpp的安装及使用的更多相关文章
- log4cpp安装使用
1. 主页:http://log4cpp.sourceforge.net“Log4cpp is library of C++ classes for flexible logging to files ...
- GNU Radio安装教程: Ubuntu14.04 + uhd3.10.0 + gnuradio3.7.10.1
1. 更新和安装依赖项 在编译安装uhd和gnuradio之前,确保已安装所需依赖项.Ubuntu系统运行: sudo apt-get update 安装UHD和GNURadio所需依赖项: On U ...
- log4cpp安装
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 一步步入门log4cpp
前言 项目实现过程中,需要检查.查找或者调试程序bug等,此时程序日志则较为清晰地展现代码的运行过程.目前接触到的方法有打印消息到控制台,将重要信息输出到某个文件比如txt文件,或者直接使用日志库. ...
- QT应用程序 安装路径中文异常问题
[1]QT 安装中文路径启动异常问题 最近在搞一个很简单的QT应用程序,开发环境VS2017 + QT5.9,线上异常报错:安装中文路径下启动崩溃~~~~ 最后,本地调试Debug版本,发现安装中文路 ...
- C++之log4cpp库的使用
log4..简介 log4..是基于log4j的一系列的c++移植版本,使用了log4j的模式结构,目前主要有以下几个版本: 1. log4cxx, 目前是到0.10.0版,Apache下的孵化项目, ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
随机推荐
- 如何利用 Seaborn 实现高级统计图表
本文分享自华为云社区<使用 Seaborn 实现高级统计图表从箱线图到多变量关系探索> ,作者:柠檬味拥抱. 在数据科学和数据可视化领域,Seaborn 是一个备受欢迎的 Python 可 ...
- Avalonia中的线性渐变画刷LinearGradientBrush
在WPF中使用Shape实现复杂线条动画后,尝试在Avalonia中也实现同样效果.尽管官方提供了从WPF到Avalonia的快速入门文档,但由于第一次使用Avalonia,体验过程中并不是很顺利,主 ...
- 转 [golang]为什么Response.Body需要被关闭
Body io.ReadCloser The http Client and Transport guarantee that Body is always non-nil, even o ...
- Android 13 - Media框架(5)- NuPlayerDriver
关注公众号免费阅读全文,进入音视频开发技术分享群! 前面的章节中我们了解到上层调用setDataSource后,MediaPlayerService::Client(IMediaPlayer)会调用M ...
- 关于Embedded Resource的理解
Embedded Resource .NET中使用外部资源时常用的方式都是使用资源文件,作为程序集的一部分发布.资源文件的读取也比较方便,字符串.图片和任何二进制数据,包括任何类型的文件都可以作为资源 ...
- 人脸识别库 虹软 客户端 服务端 示例 基于虹软SDK在C/S 模式下的多人脸实时识别(C#)
https://github.com/18628271760/MultipleFacesProcess 一.前言 虹软开发SDK以来,其免费使用的营销策略,成功降低了中小企业使用人脸识别技术的成本.然 ...
- 算法金 | 突破最强算法模型!!学会随机森林,你也能发表高水平SCI
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 就在去年下半年,如果你在 Google Scholar 上以 "Random ...
- numpy基础--用于数组的文件输入输出
以下代码的前提:import numpy as np numpy能够读写磁盘上的文本数据或二进制数据. 1 将数组以二进制格式保存到磁盘 np.save和np.load是读写磁盘数组数据的两个主要函数 ...
- 记录工作中常用的 JS 数组相关操作
工作中难免会遇到各种各样的数据结构,较为全面的了解数组操作,对于复杂数据结构的处理会非常有用且节省时间 所以想在这里总结一下工作中常用的数组操作,都是一些非常基础的知识,大家看个乐就好~ 目录 工作中 ...
- react类组件
使用ES6语法的class创建的组件(有状态组件) 类名称必须要大写字母开头 类组件要继承React.Component父类,从而可以使用父类中提供的方法或者属性 类组件必须提供 render 方法, ...