log4cpp的安装(vs/visual studio版)

news2024/12/23 10:24:06

  • log4cpp安装
    • 下载源
    • visual studio安装方法

log4cpp安装

下载源

log4cpp

visual studio安装方法

  1. 将下载好的压缩包解压缩后得到下列目录(解压缩的文件夹最好放C盘,不然在编译阶段往往会出现链接不上的问题)
    在这里插入图片描述
    找到mscv10文件夹内的mscv10.sln项目文件,右键log4cppLIB源文件,生成(编译器一定要选WIN32)
    在这里插入图片描述
  2. 回到mscv10文件夹中,此时有了release或debug版本,将release文件夹中的log4cppLIB.lib复制,将debug文件夹中的log4cppD.lib复制,并把log4cpp目录下的inclue文件夹复制(建议两个版本都安装一遍)
  3. 在一个方便的路径下粘贴三个文件,两个lib文件放在lib文件夹中,include文件夹放在当前目录下
    在这里插入图片描述
    在这里插入图片描述
  4. 此时路径已经设置好了,在vs新建一个项目,专门用于写log4cpp相关的代码,配置环境(编译器一定要选WIN32,和前面生成的文件匹配)
  5. 在项目属性下找到VC++目录选项,修改包含目录和库目录(注意要先点继承父级目录后再添加路径),包含目录添加include路径,库目录添加lib路径
    .在这里插入图片描述
  6. 在链接器选项下的输入选项中,修改附加依赖项(也要注意保留父级路径),如果当前编辑器是Release就添加log4cppLIB.lib,如果是Debug就添加log4cppD.lib
  7. 此时大概已经配置好了环境
    测试代码
//FileAppenderExam:
#include <iostream>
#include "log4cpp/Category.hh"
#include "log4cpp/Appender.hh"
#include "log4cpp/FileAppender.hh"
#include "log4cpp/Priority.hh"
#include "log4cpp/PatternLayout.hh"
#include "log4cpp/RollingFileAppender.hh"
using namespace std;

int main(int argc, char* argv[])
{
    log4cpp::PatternLayout* pLayout1 = new log4cpp::PatternLayout();//创建一个Layout;
    pLayout1->setConversionPattern("%d: %p %c %x: %m%n");//指定布局格式;

    log4cpp::PatternLayout* pLayout2 = new log4cpp::PatternLayout();
    pLayout2->setConversionPattern("%d: %p %c %x: %m%n");

    log4cpp::Appender* fileAppender = new log4cpp::FileAppender("fileAppender", "wxb.log");//创建一个Appender;
    fileAppender->setLayout(pLayout1);//将指定的Layout添加到Appender;

    log4cpp::RollingFileAppender* rollfileAppender = new log4cpp::RollingFileAppender(
        "rollfileAppender", "rollwxb.log", 5 * 1024, 1);
    rollfileAppender->setLayout(pLayout2);

    log4cpp::Category& root = log4cpp::Category::getRoot().getInstance("RootName");//从系统中得到Category的根;
    root.addAppender(fileAppender);//将Appender添加到Category;
    root.addAppender(rollfileAppender);
    root.setPriority(log4cpp::Priority::DEBUG);//设置Category的优先级;

    //开始记录日志;
    for (int i = 0; i < 100; i++)
    {
        string strError;
        ostringstream oss;
        oss << i << ":Root Error Message!";
        strError = oss.str();
        root.error(strError);
    }

    log4cpp::Category::shutdown();//关闭Category;
    return 0;

}

如果没有报错就说明配置成功,如果还有报错建议评论问一下我

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【概念篇】浅谈 AOP、OOP、DDD、IOC

前言 在招聘要求中&#xff0c;有没有经常看见&#xff0c;对AOP、OOP、DDD、IOC有一定的认识&#xff0c;能够自主开发模块&#xff0c;这一类的要求。听起来是不是挺高大上&#xff0c;然后百度一搜&#xff0c;给你出来一堆概念性的东西——结果就是&#xff0c;东西…

《LKD3粗读笔记》(14)块I/O层

什么是块设备&#xff1f; 系统中能够随机访问固定大小数据片的设备被称为块设备&#xff0c;这些数据片称作块&#xff0c;最常见的块设备是硬盘。什么是字符设备&#xff1f; 字符设备按照字符流的方法被有序访问&#xff0c;像串口和键盘就都属于字符设备。这两种设备的区别…

从零开始搭建 Lsky Pro 兰空图床

本文源码&#xff1a;https://github.com/chen2438/chenhaotian.top/tree/main/source/_posts/linux-app/lsky.md 在我的博客上查看&#xff1a;https://chenhaotian.top/2022/12/30/linux-app/lsky/ 从零开始搭建 Lsky Pro 兰空图床 官方教程 安装环境 使用OneinStack安装…

第五章 面向对象-8.enum 枚举

enum 枚举 枚举的实例对象是固定的&#xff0c;实例是自动new&#xff0c;每个枚举类会自动继承java.lang.Enum 抽象类 如何声明枚举&#xff1f; 所有枚举类都是java.lang.Enum的子类&#xff0c;无需用extends来继承&#xff0c;如下是枚举类拥有的常用方法 方法名称说明…

测试报告框架 —— Allure2测试报告

目录 Allure2测试报告 1、使用 Allure2 运行方式-Python 2、使用 Allure2 运行方式-Java 3、生成测试报告 4、Allure2 报告中添加用例标题 5、allure2报告中添加用例步骤 6、allure2报告中添加用例链接 7、allure2报告中添加用例分类 8、Allure2 报告中添加用例描述 …

【面试题】前端必修-浏览器的渲染原理

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 1.浏览器的渲染原理 #浏览器是如何渲染页面的 1.什么叫渲染 render 当我们输入一个url地址的…

新书上市 | 从大脑认知开始,全方面提高编程能力,助你摆脱“GPT焦虑症”

目录 一、ChatGPT火爆全网二、《程序员超强大脑》三、本书内容四、本书特色五、作译者简介1、费莉安赫尔曼斯&#xff08;Felienne Hermans&#xff09;2、蒋楠 大家好&#xff0c;我是哪吒。 &#x1f3c6;本文收录于&#xff0c;49天精通Java从入门到就业。 全网最细Java零…

程序人生-Hello’s P2P

摘要 本文讨论了与编程和软件开发相关的几个关键概念和过程。首先介绍了链接的概念和作用&#xff0c;它是将代码和数据片段组合成单一文件的过程&#xff0c;使得分离编译成为可能&#xff0c;从而可以更好地管理和修改模块。接下来探讨了进程的概念和作用&#xff0c;进程是正…

图像数据处理

文章目录 1&#xff1a;TFRecords1-1 将MNIST数据集转换成TFRecord格式1-2 读取TFRecord文件中的数据 2&#xff1a;图像数据的预处理2-1 处理图像编码2-2 调整图像大小2-3 剪裁和填充2-4 按比例剪裁2-5 图像翻转2-6 图像亮度调整2-7 图像对比度调整2-8 图像色相调整2-9 图像饱…

chatgpt赋能Python-python_99乘法

Python编程实现——99乘法表的生成 Python编程语言是一种高级程序设计语言&#xff0c;具有简单易学、可移植性强、功能强大等特点&#xff0c;受到广大开发者的喜爱。Python可以被应用于网站开发、数据分析、人工智能、机器学习等多个领域。而在Python编程中&#xff0c;生成…

《程序员面试金典(第6版)》面试题 02.06. 回文链表(双指针(快慢指针),查找链表中间节点,反转链表)

题目描述 编写一个函数&#xff0c;检查输入的链表是否是回文的。 题目传送门~&#xff1a;面试题 02.06. 回文链表 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 进…

蓝桥杯单片机串口通信学习提升笔记——部分2

今日继续学习提升蓝桥杯国赛能力水平。 有道是&#xff1a;卜心事、灯花无语&#xff0c;百感孤单&#xff0c;鸳被羞展...... 梦方圆&#xff0c;又丛钟、声声惊断。 诗人杨玉衔孤单影只&#xff0c;偏偏又多遭磨难&#xff0c;一路坎坷...... 正如我近日来学习提升串口通信…

数据结构学习分享之链式二叉树(一)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:数据结构学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你了解更多数据结构的知识   &#x1f51d;&#x1f51d; 1. 前言 在学习链式二叉树…

【Linux】shell编程—awk编辑器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、awk编辑器1.工作流程3.常用选项 二、awk的基础用法1.输出文件中的某一列2.根据特定条件筛选数据3.按照分隔符进行切割4.在匹配到特定字符串时执行操作5.BEGIN打…

chatgpt赋能Python-pythonwxpy

Python的wxpy模块&#xff1a;一款强大的微信机器人框架 在当今数字时代&#xff0c;微信已经成为了大家日常生活中不可缺少的应用。wxpy是一款使用Python语言的微信机器人框架&#xff0c;可以帮助用户实现诸如自动回复、消息提醒、定时发送消息等自动化操作。它的易用性、强…

(5)---STM32 的时钟系统

目录 1.时钟基本概念 时钟源常见振荡器 振荡电路 晶体振荡器 RC振荡器 2.G030时钟源 3.时钟树 4.STM32CubeMX时钟树配置 1.时钟基本概念 1&#xff09; 时钟是嵌入式系统的脉搏&#xff0c;处理器内核在时钟驱动下完成指令执行&#xff0c;状态变换等动作&#xff0c; 外设部件…

基于redis客户端缓存机制实现本地缓存

文章目录 前言一、本地缓存和分布式缓存二、redis客户端缓存机制1.客户端缓存实现原理普通模式广播模式重定向模式redirect 2.优势和误区3.客户端缓存机制请求流程 三、项目实战1.引入依赖2.redis连接属性配置3.开启客户端缓存4.使用本地缓存5.测试 总结 前言 采用缓存一直是我…

VMware ESXi 6.0 U3 Final - ESXi 6 系列最终版下载

VMware ESXi 6.0 U3 Final - ESXi 6 系列最终版下载 VMware ESXi 6 Standard 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VersionRelease NameRelease …

RLHF中的PPO算法原理及其实现

RLHF中的PPO算法原理及其实现 ChatGPT是基于InstructGPT实现的多轮对话生成式大模型。ChatGPT主要涉及到的技术包括&#xff1a; 指令微调&#xff08;Instruction-tuning&#xff09;&#xff1b;因果推断&#xff08;Causal Language Modeling&#xff09;&#xff1b;人类…

从零开始Vue3+Element Plus后台管理系统(十五)——多语言国际化vue I18n

i18n国际化的内容比较多&#xff0c;写文章的时间也用得比较长&#xff0c;从上周五开始到本周一&#xff0c;断断续续完成了。 虽然实际工作中很多项目都不需要国际化&#xff0c;但是了解国际化的用法还是很有必要的。 i18n Vue I18n 是 Vue.js 的国际化插件。它可以轻松地…