log4cplus::Initializer

构造函数调用log4cplus::initialize(),析构函数调用log4cplus::Logger::shutdown()

log4cplus::Initializer m_initializer;//构造函数调用log4cplus::initialize(),析构函数调用log4cplus::Logger::shutdown()

还没完:当你使用了ThreadPool之后,log4cplus总是会在main函数执行之前使用static机制初始化,并创建线程池。如果你在main函数退出的时候没有调用

log4cplus::deinitialize();

则线程池中的线程不会退出。导致main函数无法退出。所以要在main函数退出之前调用这句话,如果不调用,那个log4cplus::Initializer m_initializer;只负责调用shutdown,而不负责调用clearThreadPool。只有log4cplus::deinitialize();才会既clearThreadPool又shutdown。

可以单独封装一个接口,类似如下:

void close()
{log4cplus::deinitialize();
}

然后在主程序main函数return之前调用该函数即可,如下为Qt程序下的main函数:

int main(int argc, char *argv[])
{QApplication a(argc, argv);..............  // 应用程序其它代码..............  // 应用程序其它代码..............  // 应用程序其它代码int k = a.exec();close(); // 让日志库log4cplus中的线程池等资源退出,否则即使main退出了,但主进程依然不会退出return k;
}

非常详细介绍log4cplus的博客:
https://blog.csdn.net/lx_shudong/article/details/48732999

log4cplus导致主进程不能退出问题解决相关推荐

  1. python主进程退出时子进程也退出_主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(三)...

    之前两篇文章讨论了进程意外退出时,如何杀死子进程,这节我们研究下在使用进程池multiprocessing.Pool时,如何保证主进程意外退出,进程池中的worker进程同时退出,不产生孤儿进程.如果 ...

  2. Linux主进程退出,主进程创建的线程会退出吗?

    1.主进程的退出方式<1>.return 0;<2>.exit(0);2.线程退出方式pthread_exit();3.主进程和线程退出区别 <1>.主进程执行完r ...

  3. python进程的注意点(进程之间不共享全局变量、主进程会等待所有的子进程执行结束再结束)

    1. 进程的注意点介绍 进程之间不共享全局变量 主进程会等待所有的子进程执行结束再结束 2. 进程之间不共享全局变量 import multiprocessing import time# 定义全局变 ...

  4. linux进程莫名其妙被kill,Linux运行程序时,程序进程莫名退出(被杀死)

    Linux运行程序时,程序进程莫名退出(被杀死) 1.知识点 1)Linux程序进程被杀,日志突然中止,可以考虑是否因为程序占用内存过高,导致系统内存不足,为避免系统崩溃,系统寻找内存占用最大的进程k ...

  5. Python程序使用os.system()方法调用exe程序导致主程序进程无响应

    现象:在python进程中使用os.system()调用外部的exe程序,导致主进程阻塞 解决方法: subprocess.Popen("***.exe") 使用subproces ...

  6. 详谈 UNIX 环境进程异常退出

    原文链接:http://www.ibm.com/developerworks/cn/aix/library/1206_xiejd_unixexception/ 详谈 UNIX 环境进程异常退出 本文详 ...

  7. 面试官:哪些原因会导致JAVA进程退出?

    面试官:哪些原因会导致JAVA进程退出? 无外乎三种情况. linux的OOM killer杀死 JVM自身故障 jvm的OOM导致进程退出(很罕见,我至今没遇见过) 引言 linux的OOM kil ...

  8. go语言之进阶篇主协程先退出导致子协程没来得及调用

    1.主协程先退出导致子协程没来得及调用 示例: package mainimport ("fmt""time" )//主协程退出了,其它子协程也要跟着退出 fu ...

  9. 转:Python 主进程被杀死时,如何保证子进程同时退出而不变为孤儿进程

    发布于博客园,作者:Tourun <主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(一)> <主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(二)> < ...

最新文章

  1. 一款低延迟的分布式数据库同步系统--databus
  2. VS2008下直接安装使用Boost库1.46.1版本号
  3. lc滤波电路电感电容值选择_这几种常见的无源滤波电路,你都了解吗 ?
  4. openFoam源码中的C++
  5. C语言函数参数既做出参又做入参的代表
  6. 大型网站技术架构:核心原理与案例分析笔记
  7. cvtcolor python opencv_二值分析 | OpenCV + skimage如何提取中心线
  8. Can't load AMD 64-bit .dll on a IA 32-bit platform
  9. 解析activity之间数据传递方法的详解
  10. 【车牌识别】基于matlab GUI模拟停车位管理系统【含Matlab源码 898期】
  11. MATLAB——数据类型
  12. 计算机一级两列怎么筛选,怎么筛选Excel软件两个表格里相同的数据
  13. win10中常用快捷键 (包括切换窗口、打开我的电脑等快捷键)
  14. VirtulBox安装虚拟机(鼠标点击时)0x00000000指令引用的0x00000000内存该内存不能为written错误解决方案...
  15. 算法提高 解二元一次方程组
  16. 让工控机通过笔记本的Wifi实现上网
  17. UVA12096 - The SetStack Computer(set + map映射)
  18. 词云图制作(wordcloud pyecharts)
  19. opencv_contrib安装笔记
  20. 通过ua区分QQ内置浏览器与QQ浏览器

热门文章

  1. 电机驱动TB6612FNG全网断货,可替代方案来了,文末送模块!
  2. html转盘游戏,html5大转盘抽奖实例源码(基于vue.js)
  3. java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?
  4. 笔记本超频会烧吗_如何判断电脑是否支持DIY 超频?这篇文章告诉你
  5. 反射在java中的应用_java反射机制在项目中的运用
  6. 961计算机基础综合pdf,2017-2018年北航科学与技术教育961计算机基础综合考研大纲重难点.pdf...
  7. java wav 切割_WAV音频定长分段切取
  8. 卷文件系统根目录仅剩余0字节_Linux Ext4文件系统的老祖宗长什么样
  9. 【Rxjs】 - 解析四种主题Subject
  10. 学习WPF——使用Font-Awesome图标字体