log4cpp的安装及使用

news/2024/11/17 18:53:08/文章来源:https://www.cnblogs.com/paw5zx/p/18303848

目录
  • 前言
  • 安装
  • 使用
    • 示例代码
    • 配置文件
    • 编译链接
    • 输出

前言

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

安装

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

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

②下载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

输出

输出结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744260.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Intellij springboot远程调试

服务器端配置: java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5005 XXXX.jar 说明: address:IP:端口;*代表所有IP地址都可访问,5005需要可IDEA远程请求的端口一致 XXXX.jar:你的springboot程序 IDEA端配置:

采购订单列表根据多条件设置单元格背景色

bos配置: 如果值存在空字符串和空格,空格会标红,为空不会。因此单独针对空字符串标红。 测试效果:

面试准备【LLM】

目录其他注意力过拟合的表现有哪些?BN 训练和测试的区别在哪里?梯度下降的公式?反向传播优化器 & Adam均方误差损失交叉熵损失梯度消失问题梯度爆炸问题权重正则化过拟合分词器BERT掩码语言建模 (MLM)下一个句子预测 Next Sentence Prediction(NSP)BERT微调BERT模型创新…

帝国CMS网站为什么发布时间比实际时间相差8个小时?

你的php设置的时间有问题,是美国的时间。有以下两种方法可解决:1、修改php.ini,找到:date.timezone,把前面的分号去掉,并把值设为PRC2、修改e/class/config.php文件,把://@date_default_timezone_set("PRC");前面的//去掉即可本文来自博客园,作者:黄文Rex,…

易优CMS英文名称设置与调用标签

{$field.englist_name}本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18303796

访问站点时出现:“/templets/default/index.htm Not Found!

错误记录: 访问站点时出现:“/templets/default/index.htm Not Found! 错误原因: 原因是程序调用的默认首页模板不存在, 解决方案: 请检查templets目录下是否存在报错中的default模板目录,或检查default目录下是否有index.htm文件,若有问题,请联系程序开发商核实并重新上传…

Apache服务器上的No input file specified错误

错误提示: Apache服务器上的No input file specified错误 解决方案: 在根目录下找到php5.ini文件(如果找不到就建立一个),在里面加上如下内容 cgi.fix_pathinfo = 1本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18303797

帝国CMS网站如何单独制作投稿页面,不用系统默认的

做个HTML表单,表单含原信息投稿的字段变量(含classid/id/enews/字段等变量)即可,且表单的action指向/e/DoInfo/ecms.php就可以(action="/e/DoInfo/ecms.php")。本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18303773

帝国cms"栏目名"与"栏目别名"的区别

"栏目别名":前台所有显示的"栏目名"(如标签里的"是否显示栏目名"就是显示这个)本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18303778

Java——计算1~N之间所有奇数之和

2024/07/15 1.题目 2.解题 1.题目2.解题 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int sum=0;for (int i=1;i<=N;i+=2){sum=sum+i;}System.out.println(…

Origin导出demo水印去除

1. 下载插件https://files.cnblogs.com/files/blogs/747012/origin%E6%8F%92%E4%BB%B6.rar?t=1721040252&download=true 2. 将连接中.exe文件在安装目录中进行替换 3. 管理员身份运行,重新打开即可

分布式中唯一ID生成算法

前言 分布式系统中,难免会需要生成唯一ID作为标识符的需求。数据库主键,订单系统,日志系统,消息队列,会话管理,当并发量巨大且需要唯一标识信息的ID时,唯一ID生成算法就显得非常重要。 UUID UUID(Universally Unique Identifier,通用唯一标识符)是一种标准化的唯一标…