- 浏览: 16822 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
sunwb2009:
你怎么骗哥呢?没jar么!
json-lib运行环境所需的jar包 -
sunwb2009:
非常不错,好!
json-lib运行环境所需的jar包
以前一直自己写日志类的框架
最近了解了一下开源的,感觉功能很强大!呵呵
使用了老牌的log4cpp 竟然发现有内存泄漏的问题,大概读了一下代码,并找到了这个问题。现放出来让大家也了解下
感觉这可能是编程习惯问题,如果程序退出时,有些人觉得对象就没必要删除了,因为,整个程序已经退出了,系统会处理一些事情(哪些事情?)
但是,到了MFC下面,退出时出现这些提示,让人感觉非常不爽!
内存问题一共三个地方:
1.NDC
对于不同的线程,有不同的数据需要保存,退出时自然需要释放。
解决方法,增加一个静态的函数
NDC.h
void NDC::clearCurrentThreadNDC()
{ _nDC.reset(); }
在所有用过日志的线程里,最后退出时,加上调用此函数的代码。
2. template class ThreadLocalDataHolder
解决方法:
MSThreads.hh
inline ~ThreadLocalDataHolder()
{ reset(); TlsFree(_key); };
3.Appender 需要在退出时释放
解决方法:
Appender 类中增加静态函数:
void Appender::destroyAppender() { closeAll(); _deleteAllAppenders(); delete _allAppenders; _allAppenders = NULL; }
在 HierarchyMaintainer 类中的 构造函数中加入
HierarchyMaintainer::HierarchyMaintainer() {
register_shutdown_handler( Appender::destroyAppender );
}
完整的代码及库文件在这里下载:http://download.csdn.net/source/3252558
enjoy
发表评论
-
字符串拷贝函数
2012-07-06 09:51 641这次面试腾讯,面试官要我写个字符串拷贝函数,头一天晚上一晚 ... -
用Javascript正则表达式验证Email地址
2012-07-06 09:44 1056用Javascript正则表达式验证Email地址 收 ... -
[转]JavaScript-正则表达式(二)
2012-07-06 09:37 583JavaScript中的正则表达式简介 摘要:对文本数 ... -
时钟
2012-07-06 09:29 572extrn music:far,gensound:far ... -
两款JAVASCRIPT幻灯片
2012-07-05 20:44 742New Document ... -
Xtree组件笔记
2012-07-03 13:42 7371.XTREE简介: XTREE是一个基于AJAX实现 ... -
Xtree组件笔记
2012-07-03 12:16 6941.XTREE简介: XTREE是一个基于AJAX实现 ... -
HR人员基本信息、分配信息和地址信息SQL
2012-07-02 10:13 618人员信息、分配信息和地址信息SQL语句: SELECT p ... -
Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法
2012-07-02 10:13 532这段时间做个项目 ... -
Android AIR 学习(一)
2012-07-02 10:13 669从Android 2.2开始flash ... -
学习Flex,都学些什么
2012-07-01 09:33 463学习Flex,都学些什么呢? 1、首先是事件机制,整 ... -
Flex屏蔽默认右键菜单。
2012-07-01 09:33 624首先需要修改index.template.html生成的静 ... -
An introduction to Spring BlazeDS integration
2012-07-01 09:33 522Over a year ago, SpringSource ... -
Flex DataGrid 控件知识汇总,创建、全选、删除、分页、样式
2012-07-01 09:33 655DataGrid控件是一个可以展示多列数据的列表控件。它是 ... -
Flex操作Json数据示例
2012-07-01 09:33 511Flex操作Json数据示例 本示例中需要用到JSO ... -
几个问题及解决方法
2012-06-30 17:51 918在编译VC 工程时出现的编译错误 问题如下 ... -
Zend Studio 安装后启动报错的解决方法
2012-06-30 17:51 753本文转自:http://www ... -
我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
2012-06-30 17:51 492作者:曹忠明,华清远见嵌入式学院讲师。 在学习C语言 ... -
java.lang.OutOfMemoryError: Java heap space解决方法
2012-06-30 17:51 489//首先检查程序有 ...
相关推荐
完整分析了log4cpp的整体架构,详细介绍了log4cpp的这个重要组件的实现分析了log4cpp内部所使用的设计模式。介绍了log4cpp中的Category的完整实现细节,介绍了所有的Layout及其子类的具体实现。也详细介绍了比较常用...
自己编译好的log4cpp的DLL 和 LIB 封装了一个使用类,从本地读取配置log级别等信息,可输出多个种类的日志文件,输出示例如下 [2017-02-20 16:09:51.910](NOTICE)Sys : 进入了CPfy_log4cppDlg::OnBnClickedButton1...
log4cpp用vs2010编译好的DLL 内包括:Debug/Release 两个模式的 log4cppD.lib log4cppD.dll log4cpp.lib log4cpp.dll 四个文件,以及 头文件
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。网上也已经有了各种各样“教材”,但都太零碎。 本文详细的介绍了Log4cpp的各种用法,包括编译、应用、配置。同时,作者提供了自己的...
通过制定版本交叉编译器,对开源代码log4cpp进行编译,之后产生的动态链接库拷贝到arm控制系统中,通过对应用接口的调用实现日志的生成,如果需要二次封装的接口
代码是C++,基于LOG4CPP进行封装日志,适用于Linux环境,使用过程时,对其进行继承即可套用其结构
记录了C++中使用Log4Cpp的整体使用源码,具体可参考:http://blog.csdn.net/jptiancai/article/details/23678073
C++使用Log4cpp记录日志,包括说明文档及相关关键代码、包括log4cpp-1.1.2.tar.gz。
log log4cpp vc vclog c++log
vs2008 release模式下编译好的log4cpp 1.1.1。内有详细的配置过程描述。已经可以在releases模式下正常编译。
log4cpp-1.1.3,msvc2017-64bit编译版本,dev开发专用,带lib、include、dll。
在log4cpp下载的包基础上添加按日期生成日志类,仅供学习和交流
附件包含log4cpp相关介绍,用法以及简单实例。供开发人员使用。 可以实现log信息自定义、定制化输出等
log4cpp-1.1.3.tar.gz源码和测试代码
log4cpp-开源日志库,内有VS2010解决方案
Android NDK开发 log4cpp
log4cpp android ndk
log4cpp的源代码。log4cpp是用C++语言编写的日志工具,借鉴了log4j的思想,可以自由配置日志的输出格式、输出文件等,是一个很方便的程序调试、运行追踪工具。
log4cpp的源码,觉得比较实用,可以供学习C++ STL参考手册
用log4cpp-1.0的src和include/log4cpp两个文件夹制作的log4cpp的QtCreator4.7.4的static library工程,输出的是liblog4cpp.a文件。