Log4Qt日志框架(1)- 引入到QT中

Log4Qt日志框架(1)- 引入到QT中

  • [1 下载源码](#1 下载源码)
  • [2 简介](#2 简介)
  • [3 加入到自己的项目中](#3 加入到自己的项目中)
    • [3.1 使用库文件](#3.1 使用库文件)
    • [3.2 引入源文件](#3.2 引入源文件)
  • [4 说明](#4 说明)

1 下载源码

github:https://github.com/MEONMedical/Log4Qt

官方(版本较老):https://sourceforge.net/projects/log4qt/

CSDN(0积分):https://download.csdn.net/download/qq_40666149/88233421

2 简介

Log4Qt 是一个基于 Qt 的日志库,它是 Apache log4j 的一个移植版本。Log4Qt 旨在为 Qt 应用程序提供一个灵活和可配置的日志框架。以下是 Log4Qt 的一些基本特性和信息:

  • 组件化:Log4Qt 提供了各种组件,如日志器(Logger)、日志级别、布局(Layout)、Appender(追加器)等,使得其非常灵活和可扩展。
  • 多种日志级别:它支持多种日志级别,如 TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL。
  • 多种输出目标:Log4Qt 可以配置输出到多种目的地,例如:文件、控制台、数据库等。
  • 布局和格式化:日志消息可以按照指定的格式进行格式化,例如:时间戳、日志级别、线程信息等。
  • 异步日志:为了提高性能,Log4Qt 支持异步日志记录。
  • 配置:Log4Qt 可以通过配置文件或直接使用代码进行配置,这意味着你可以在应用程序运行时更改日志配置。
  • 过滤器:你可以配置过滤器来决定哪些日志消息应该被记录,哪些不应该。
  • 滚动策略:对于文件输出,Log4Qt 支持滚动策略,例如当日志文件达到一定大小时创建新的日志文件。
  • 和 Qt 的集成:由于是为 Qt 设计的,Log4Qt 能够很好地与 Qt 应用程序集成,包括对 Qt 的线程、信号和槽的支持。
  • 可扩展性:你可以通过继承现有组件或创建新的组件来扩展 Log4Qt 的功能。

3 加入到自己的项目中

3.1 使用库文件

如果你下载的是最新版的,需要使用QT5.12及以上版本进行编译。具体信息可以阅读下载文件中的ChangeLog.md文件。

选择log4qt.pro文件进行打开,按照你的需求直接编译即可。

编译生成内容如下:

log4qt.dll、log4qt.lib这两个文件就是编译生成的库文件

  1. log4qt.dll:这是动态链接库文件。它包含库的实际代码。当你的应用程序启动时,这个 .dll 文件会被加载到内存中,并且它里面的功能会被你的应用程序使用。
  2. log4qt.lib:这是一个导入库(或称为链接库)。它在链接时提供了.dll文件中的函数和数据的引用信息,使得链接器知道如何在运行时查找这些函数和数据。当你的应用程序被编译并链接时,它实际上是链接到这个 .lib 文件,而不是 .dll 文件。

如何将这个库加入到自己的工程?

我们随便新建一个项目,如下图

找到你创建这个项目的位置,并创建lib和bin文件夹,将log4qt.lib文件放到lib文件夹中,将log4qt.dll放入到bin中。如图所示:


创建include文件夹,将src中头文件加复制进去,如图所示:


在pro文件中加入:

cpp 复制代码
DESTDIR = $$PWD/bin

INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib -llog4qt

如图所示:

测试使用:

在main函数中:

cpp 复制代码
#include <QApplication>

#include "log4qt/logger.h"
#include "log4qt/basicconfigurator.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Log4Qt::BasicConfigurator::configure();
    Log4Qt::Logger * log = Log4Qt::Logger::rootLogger();
    log->debug("debug!");
    log->info("information!");
    log->warn("warn");
    return a.exec();
}

编译运行生成如下:

3.2 引入源文件

随便创建一个项目,并将源码中的src下的log4qt文件夹复制到自己创建的项目下,如图所示:

将build.pri和g++.pri也复制到log4qt文件下,如图:

在pro文件中加入:

cpp 复制代码
DESTDIR = $$PWD/bin

INCLUDEPATH += $$PWD/log4qt
include($$PWD/log4qt/log4qt.pri)

在左侧的项目中可以看到:

修改log4qt.pri文件,加入:

cpp 复制代码
#加载模块
QT += xml network concurrent sql

DEFINES +=LOG4QT_STATIC
include($$PWD/build.pri)
include($$PWD/g++.pri)


测试使用:

在main函数中:

cpp 复制代码
#include <QApplication>

#include "log4qt/logger.h"
#include "log4qt/basicconfigurator.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Log4Qt::BasicConfigurator::configure();
    Log4Qt::Logger * log = Log4Qt::Logger::rootLogger();
    log->debug("debug!");
    log->info("information!");
    log->warn("warn");
    return a.exec();
}

4 说明

上面两种方式都可以,根据自己项目需要选择。我是直接引入源文件的。

相关推荐
锦亦之22333 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
柳鲲鹏6 小时前
编译成功!QT/6.7.2/Creator编译Windows64 MySQL驱动(MinGW版)
开发语言·qt·mysql
三玖诶6 小时前
如何在 Qt 的 QListWidget 中逐行添加和显示数据
开发语言·qt
阳光开朗_大男孩儿12 小时前
DBUS属性原理
linux·服务器·前端·数据库·qt
Alphapeople13 小时前
Qt Modbus
开发语言·qt
竹林海中敲代码14 小时前
Qt Creator 集成开发环境 常见问题
qt·qt工具常见问题
竹林海中敲代码17 小时前
Qt安卓开发连接手机调试(红米K60为例)
android·qt·智能手机
长沙红胖子Qt18 小时前
关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法
开发语言·qt·qt扩大运行内存
gopher951118 小时前
qt相关面试题
开发语言·qt·面试
三玖诶1 天前
在 Qt 中使用 QLabel 设置 GIF 动态背景
开发语言·qt·命令模式