日志系统可以记录软件系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件和异常。在程序调试过程中,需要通过日志来找出问题所在。
使用一个好的日志框架可以事半功倍,C++的日志框架有很多,常用的框架如下:
-
log4cxx:Java 社区著名的 Log4j 的 C++ 移植版,用于为 C++ 程序提供日志功能,以便开发者对目标程序进行调试和审计。
-
log4cplus:一个简单易用的 C++ 日志记录 API,它提供了对日志管理和配置的线程安全、灵活和任意粒度控制(也基于 Log4j)。
-
Log4cpp:一个 C++ 类库,可以灵活地记录到文件、syslog、IDSA 和其他目的地(也基于 Log4j)。
-
google-glog:一个 C++ 语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种辅助宏。
-
Pantheios:一个类型安全、高效、泛型和可扩展性的 C++ 日志 API 库(号称 C++ 领域速度最快的日志库)。
-
POCO:还提供了一个 好的日志支持文档。
-
ACE:ACE 也有日志支持。
-
Boost.Log:设计的非常模块化,并且可扩展。
-
Easylogging++:轻量级高性能 C++ 日志库(只有一个头文件)。
-
G3log:一个开源、支持跨平台的异步 C++ 日志框架,支持自定义日志格式。基于 g2log 构建,提升了性能,支持自定义格式。
-
Plog:可移植、简单和可扩展的 C++ 日志库。
-
spdlog:一个快速的 C++ 日志库,只包含头文件,兼容 C++11。
本文使用Log4Qt,而Log4Qt来自于Log4j,下载网址如下:
https://github.com/MEONMedical/Log4Qt
图像的特征描述了图像的某种属性,当通过分割、形态学处理得到一些区域后,这些区域就构成了一个集合。 常用的特征类型有边缘、角、区域和脊背。
一、Log4Qt架构
Log4Qt有三个部分:
-
loggers:负责捕获日志信息。
-
appenders:负责输出信息到不同的目的地,比如数据库,文件,控制台等等。
-
layouts:负责使用不同的样式输出日志
Log4Qt框架中有两种对象:
-
核心对象:框架的支撑对象,是框架必不可少的组成部分。
-
支撑对象:这些都是框架可选的对象,用于提供额外重要的工作。
Log4Qt的架构图如下所示:

-
Level对象:级别对象定义日志的粒度和优先级。
-
过滤器对象:用于分析日志信息并决定日志信息是否输出。每个appender对象可以有几个过滤器对象协同工作,当日志信息到达特定的appender时,所有的过滤器会帮助appender在其发布到目的地之前进行过滤操作。
-
对象渲染器:提供一段字符用于识别发送日志的不同对象,这个对象也用于layout对象准备常量信息。
-
日志管理器:用于管理日志框架,它负责从初始化配置中读取信息,这

本文介绍了C++中常见的日志框架,如log4cxx、log4cplus、Log4cpp等,并重点讲解了Log4Qt的架构、规则和使用方法。Log4Qt提供日志级别的设定、布局格式化和过滤器功能,允许开发者灵活管理日志输出。文章还展示了如何配置Log4Qt以输出不同格式的日志,并提供了将日志重定向到窗口的实现方法。

2873

被折叠的 条评论
为什么被折叠?



