Log4cpp 使用手册
参考资料: log4cpp 配置 与 使用http://www.cnblogs.com/welkinwalker/archive/2011/06/23/2088197.html
便利的开发工具-log4cpp快速使用指南
http://www.ibm.com/developerworks/cn/linux/l-log4cpp/
Log4cpp配置文件格式说明
http://sogo6.iteye.com/blog/1154315
使用步骤说明:
1、下载log4cppDLL ,见附件。这里面已经有别人编译完成的.lib与.dll文件。我们拿来用即可。
包含文件如下图所示:
2、打开我们的程序,选中项目,属性,如下图所示
3、选择“c/c++“选项,点开下列菜单,点击”常规“:在“附加包含目录”这一栏中,选择编辑,找到刚刚附件里面的文件夹下面的include菜单。
如下面所示:(我的log4cpp文件放在桌面上,如果想移植时,不改变此输入项,可将log4cpp放在D盘根目录下面即可。)完成之后,点击确定即可。
4、在左边的菜单中,点开“链接器“选项。并点开“常规“选项栏。在附加库目录中,选择log4cpp文件下面的动态库文件.dll。如下图所示:(弄完后,点击确定)
5、在“链接器“菜单下,选择“输入“,在”附加依赖项“中输入log4cppDLLD.lib,(注:通过.lib当中的文件,我们就可以找到DLL中函数的地址,从而引用DLL当中的函数),如下图所示:
6、以上步骤弄完以后,点击确定。然后在选中项目,右击,点击“在windows资源管理器中打开文件“,在此目录下,拷贝两个文件进去。
一个是 log4cppDLLD.dll,动态链接库文件。
一个是 log4cpp.conf, log4cpp的配置文件
此文件见附件。
7、一切准备工作完成之后,下面进入正式编程阶段。
1)在你需要添加日志的文件中,引入下面头文件
#include "log4cpp/Category.hh "
#include "log4cpp/FileAppender.hh"
#include "log4cpp/SimpleLayout.hh"
#include "log4cpp/PropertyConfigurator.hh"
#include <log4cpp/Portability.hh>
2)在主线程或者副线程中,引入下面日志文件的配置、实例化
// 1 读取解析配置文件
// 读取出错, 完全可以忽略,可以定义一个缺省策略或者使用系统缺省策略
// BasicLayout输出所有优先级日志到ConsoleAppender
try {
log4cpp::PropertyConfigurator::configure("./log4cpp.conf");
} catch(log4cpp::ConfigureFailure& f) {
std::cout << "Configure Problem " << f.what() << std::endl;
return -1;
}
// 2 实例化category对象
// 这些对象即使配置文件没有定义也可以使用,不过其属性继承其父category
// 通常使用引用可能不太方便,可以使用指针,以后做指针使用
// log4cpp::Category* root = &log4cpp::Category::getRoot();
log4cpp::Category& root = log4cpp::Category::getRoot();
log4cpp::Category& sub1 =
log4cpp::Category::getInstance(std::string("sub1"));
// 3 正常使用这些category对象进行日志处理。
// sub1 has appender A1 and rootappender.
int i = 1;
sub1.info("info: %d ok !",i); //这个和我们的配置文件相关
3)运行程序,此时会出现以下界面:
选中项目,右击,点击“在windows资源管理器中打开文件“,此时会发现,该目录下,出现了A1.log文件,打开文件出现下面的文字:
The message 'info: 1 ok !' at time 2014-09-02 19:56:55,686[2676]INFO
为什么会出现此信息???
4)打开log4cpp.conf文件,一切秘密皆在此。
我引用的是A1 category,而A1属性如下:
#定义A1的属性
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.fileName=A1.log
appender.A1.layout=org.apache.log4j.PatternLayout
appender.A1.layout.ConversionPattern=The message '%m' at time %d[%t]%p%n
第一行大概意思:输出文件Appender
第二行大概意思:输出文件名字定义为A1.log
第三行大概意思:文件的布局layout方式是PatternLayout模式。模式不同,输出的内容亦有所不同。
第四行大概意思:输出内容。
下面对The message '%m' at time %d[%t]%p%n 这句话做详细说明。
此为输出文件的格式说明符。
其中 %m表示 用户写log的具体信息,也就是我们所要存的内容。
%d 表示 时间戳,精确到ms
%t 表示 线程名
%p 表示 优先级
%n 表示 回车换行符
That is all,thanks。
转载于:https://www.cnblogs.com/zhuxuekui/p/3952196.html
Log4cpp 使用手册相关推荐
- log4cpp指导手册
<此篇博客结合多个博客自己整理而成,想发转载但找不到原链接出处,所以暂时写为原创.如有侵权,请及时联系删除> 官网指导手册:http://log4cpp.sourceforge.net/ ...
- log4cpp的配置
转自 http://www.usidcbbs.com/simple/?t1514.html C++日志库,log4cplus,log4cpp使用资料手册 1 下载log4cpp并解压. 2 打开\lo ...
- 基于LGPL开源项目 Log4cpp安装与使用
[IT168 专稿]Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能.使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流.内存字符串队列.文件.回滚文 ...
- 分布式训练使用手册-paddle 数据并行
分布式训练使用手册¶ 分布式训练基本思想¶ 分布式深度学习训练通常分为两种并行化方法:数据并行,模型并行,参考下图: 在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batc ...
- 正则语法完全正则表达式手册_语法格式重点
20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...
- CUDA C++编程手册(总论)
CUDA C++编程手册(总论) CUDA C++ Programming Guide The programming guide to the CUDA model and interface. C ...
- html iso标准文档,HTML ISO-8859-1 参考手册
# HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...
- 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面
最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面. 原则 1.一致性 如果你可以在一个列表的项目上双击后能 够弹出对话框,那么应该在任何列表中双击都能弹出对话框.要有统一的字体写号.统 ...
- ffmpeg linux安装_ffmpeg命令中文手册
功能 视频转换和编辑工具 示例 1.从mp4视频文件中提取音频并保存为mp3音频格式 [root@node_116 video]# ffmpeg -i video.mp4 -vn sound.mp3f ...
最新文章
- 搜索引擎优化网页设计:最佳实践
- 数据结构与算法 | 堆排序
- #530. 「LibreOJ β Round #5」最小倍数 二分 + 数论
- 前端学习(1718):前端系列javascript之生命周期上
- OpenCV--罗德里格斯(Rodrigues)变换
- 什么是单镜头反光相机
- Qt文件打包_vortex_新浪博客
- centos7部署两个mysql_基于Canal和Kafka实现MySQL的Binlog近实时同步
- 惠普136nw打印机清零_惠普136nw打印机清零_HP惠普打印机清零大全
- 计算机维护工作周报,运维周报怎么写呀,这一周没什么事做
- vue-项目完成的项目报告
- Linux下修改键盘映射
- 电脑卸载了bandzip,但是在文件的打开方式里面还是有bandzip,注册表里又搜不到相关文件,如何解决?
- STM32按键总结(低电平有效及上升沿有效)
- 对短信验证码发送次数的限制
- kubectl源码分析之rollout restart
- 英语老师自用省心天花板小程序
- WebAPI编程_DOM
- drtek收音机使用说明_车载收音机按键图解说明,老式车载收音机说明书
- python写wordcount_Python开发Spark应用之Wordcount词频统计
热门文章
- html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...
- boot lvm 分区_Linux如何在线对逻辑分区扩容
- dvwa安装包linux,dvwa安裝、配置、使用教程(Linux)
- python3 csv 读入数组_如何将CSV数据读入NumPy中的记录数组?
- 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
- ie8不兼容java项目_常见IE8兼容性问题及解决
- 各层作用_终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的
- 市面上有哪几种门_选择 low-e门窗玻璃,你想知道的都在这了
- 湖南省普通高等学校计算机应用水平,湖南省普通高等学校非计算机专业学生计算机应用水平二级考试大纲...
- 用友邮件撤回怎么操作_用户体验原则——“操作可控”