C++学习笔记(七)——log4cpp

log4cpp的下载与安装

1.下载log4cpp-1.1.1.tar.gz
2. 安装:先将log4cpp-1.1.1.tar.gz拖入用户主目录,
然后再执行以下步骤:
$ sudo cp log4cpp-1.1.1.tar.gz /usr/local
$ su
# cd /usr/local
# tar zxvf log4cpp-1.1.1.tar.gz
# cd /usr/local/log4cpp/
# ./configure
# make
# make check
# make install
这里已经安装成功.
默认lib库路径是 : /usr/local/lib/
默认头文件的位置: /usr/local/include/log4cpp

log4cpp简介与使用示例

一、简介

   log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。其类似的支持库还包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(log4p)等。

log4cpp有如下优点:

• 提供了可扩展的多种日志记录方式;
    • 提供了NDC(嵌套诊断上下文),可用于多线程、多场景的跟踪调试;
    • 提供了完整的日志动态优先级控制,可随时调整需要记录的日志优先级;
    • 可通过配置文件完成所有配置并动态加载;
    • 性能优秀,内存占用小,经过编译后的log4cpp.dll大小仅有160kb;
    • 代码级的平台无关性,Log4cpp源代码经过编译后,适用于大多数主流的操作系统和开发工具;
• 概念清晰,学习和使用方便,熟练程序员一天之内即可很好地应用log4cpp进行开发。

二、使用:

2.1 编译使用log4cpp库的CPP文件时,要加上库文件,如下示例:g++ log4test.cpp -llog4cpp -lpthread才能顺利的编译通过。
2.2 运行时,如若提示缺少log4cpp库文件,表示找不到log4cpp的动态库,需要进行以下设置
以管理员身份登录终端,然后执行以下操作:a. # vim /etc/ld.so.confb. 在打开的文件末尾添加动态库log4cpp的路径(这里是/usr/local/lib),然后保存退出;执行命令ldconfig使设置生效即可。c. # ldcondfig   //更新库文件的缓存信息。
下面通过一个简单的实例代码与代码注释来对log4cpp有个初次认识,之后,再说一个学习途径。
实例代码(代码7-1):
#include<iostream>#include"log4cpp/Category.hh"//include log4cpp下的Category.hh头文件
//Category.hh用于绑定该日志要跟踪记录的信息#include"log4cpp/OstreamAppender.hh"//include log4cpp下的OstreamAppender.hh头文件
//OstreamAppender.hh用于输出Ostream类#include"log4cpp/BasicLayout.hh"//include log4cpp下的BasicLayout.hh头文件
//BasicLayout.hh用于设置输出文件内容的格式#include"log4cpp/Priority.hh"//include log4cpp下的Priority.hh头文件
//Priority.hh用于设置输入信息的权限,只有当要输入的信息权限大于该权限时,
//该信息才被写入文件中。using namespace std;int main(int argc,char* argv[]){
//创建一个OstreamAppender堆对象osAppender
log4cpp::OstreamAppender* osAppender =new log4cpp::OstreamAppender("osAppender",&cout);
//设置osAppender的信息格式为BasicLayout类型osAppender->setLayout(new log4cpp::BasicLayout());
//(通过static静态函数)获取Category类的rootlog4cpp::Category& root =log4cpp::Category::getRoot();
//root添加osAppender输出源root.addAppender(osAppender);
//设置root的输出权限为DEBUG
root.setPriority(log4cpp::Priority::DEBUG);
//设置root的输出信息
root.error("Hello log4cpp in aError Message!");root.warn("Hello log4cpp in aWarning Message!");
//关闭root
log4cpp::Category::shutdown();    return 0;}

看懂上面的实例代码就可以学习实用的内容:log4cpp快速使用指南。

C++学习笔记(七)——log4cpp相关推荐

  1. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  2. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  3. websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

    Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...

  4. ROS学习笔记七:使用rqt_console和roslaunch

    ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...

  5. 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练

    [K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...

  6. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  7. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  8. ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记(七) 复位和时钟 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介绍 ...

  9. 逆向脱壳破解分析基础学习笔记七 堆栈图(重点)

    本文为本人 大神论坛 逆向破解脱壳学习笔记之一,为本人对以往所学的回顾和总结,可能会有谬误之处,欢迎大家指出. 陆续将不断有笔记放出,希望能对想要入门的萌新有所帮助,一起进步 堆栈图 首先给定一段反汇 ...

  10. OpenCV学习笔记(七)——图像梯度及边缘检测

    图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.一般情况下,图像梯度计算的是图像的边缘信息. ...

最新文章

  1. 【杂谈】Oracle里scott的由来
  2. 开发者论坛一周精粹(第二十期) :晒往期云栖大会的照片或感想,赢2017杭州云栖大会门票...
  3. VS Code编译C/C++
  4. 对过去css+div的总结
  5. resin端口错误问题
  6. 百度地图添加自定义shp图层_GIS当中使用uDig打开shp图层,并查看数据结果
  7. Android系统Audio框架介绍(一)
  8. swf文件格式解析(一)
  9. Python爬虫,4567电影网电影信息爬取,二级页面处理方案
  10. 以风险管理思想构建关键信息基础设施风险评估重器
  11. Android Studio代码统计插件Statistic
  12. Minibatch Stochastic Gradient Descent
  13. css 实现随风摆动
  14. 通向财务自由之路04_设定你的目标
  15. unity的ui跟随鼠标移动
  16. 文件资源管理器Ranger的使用
  17. 我也写点八卦系文章:从李彦宏八卦说起
  18. Android webview加载页面获取摄像头权限实践(Kotlin)
  19. Vue百度地图电子围栏
  20. 《杰克韦尔奇自传》读后感

热门文章

  1. 稳压器及稳压二极管型号对照表
  2. 【IPD流程学习 三】模板详述
  3. 使 VC2013 编写的程序运行在其它电脑上
  4. 关于使用CKplayer播放m3u8视频出现没有视频的问题分析
  5. OMRON欧姆龙Sysmac Studio软件--ESI文件的安装
  6. cs231n svm作业笔记
  7. 图像修复经典算法--Criminisi算法
  8. 使用matlab进行深度学习
  9. pycharm汉化包
  10. 行政区划简称(包括别称)