Qt教程(1) : 用Log4Qt自定义日志系统

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

​    日志系统可以记录软件系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件和异常。在程序调试过程中,需要通过日志来找出问题所在。

    使用一个好的日志框架可以事半功倍,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对象准备常量信息。

  • 日志管理器:用于管理日志框架,它负责从初始化配置中读取信息,这

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值