QtApplets-Log4QtDemo

Posted DreamLife.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QtApplets-Log4QtDemo相关的知识,希望对你有一定的参考价值。

QtApplets-Log4QtDemo

​ 今天撸一下Log4Qt版本的日志系统,今天目的就是能用就行。


文章目录

关键字: log4QtQtlog4日志Demo

1 获取源代码

​ 这里直接百度就好。

官方网站,有人说官网的版本很老了

GitHub加速一下

2 如何使用

​ 既然有源码了,那肯定是可以有多种方式使用了

  • 直接使用源码
  • 把源码编译成动态库使用

2.1 包含模块文件

​ 今天我是使用的就是直接使用源代码,直接在Pro文件中添加include(./log4qt/log4qt.pri),如下图所示,我现在就成为是添加子模块吧,

pri文件具体是啥。看里面文件内容,应该就是把log4qt的包含文件打了一个包,不用我们一个的包含了。 有其他发现再说。

# *******************************************************************************
#
# package:     Log4Qt
# file:        log4qt.pri
# created:     September 2007
# author:      Martin Heinrich
#
# 
# Copyright 2007 Martin Heinrich
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 
# *******************************************************************************

INCLUDEPATH += $$PWD/..
DEPENDPATH += $$PWD/..
HEADERS += \\
    $$PWD/appender.h \\
    $$PWD/appenderskeleton.h \\
    $$PWD/basicconfigurator.h \\
    $$PWD/consoleappender.h \\
    $$PWD/dailyrollingfileappender.h \\
    $$PWD/fileappender.h \\
    $$PWD/helpers/classlogger.h \\
    $$PWD/helpers/configuratorhelper.h \\
    $$PWD/helpers/datetime.h \\
    $$PWD/helpers/factory.h \\
    $$PWD/helpers/initialisationhelper.h \\
    $$PWD/helpers/logerror.h \\
    $$PWD/helpers/logobject.h \\
    $$PWD/helpers/logobjectptr.h \\
    $$PWD/helpers/optionconverter.h \\
    $$PWD/helpers/patternformatter.h \\
    $$PWD/helpers/properties.h \\
    $$PWD/hierarchy.h \\
    $$PWD/layout.h \\
    $$PWD/level.h \\
    $$PWD/log4qt.h \\
    $$PWD/logger.h \\
    $$PWD/loggerrepository.h \\
    $$PWD/loggingevent.h \\
    $$PWD/logmanager.h \\
    $$PWD/mdc.h \\
    $$PWD/ndc.h \\
    $$PWD/patternlayout.h \\
    $$PWD/propertyconfigurator.h \\
    $$PWD/rollingfileappender.h \\
    $$PWD/simplelayout.h \\
    $$PWD/spi/filter.h \\
    $$PWD/ttcclayout.h \\
    $$PWD/writerappender.h \\
    $$PWD/varia/debugappender.h \\
    $$PWD/varia/denyallfilter.h \\
    $$PWD/varia/nullappender.h \\
    $$PWD/varia/levelmatchfilter.h \\
    $$PWD/varia/levelrangefilter.h \\
    $$PWD/varia/listappender.h \\
    $$PWD/varia/stringmatchfilter.h
    
SOURCES += \\
    $$PWD/appenderskeleton.cpp \\
    $$PWD/basicconfigurator.cpp \\
    $$PWD/consoleappender.cpp \\
    $$PWD/dailyrollingfileappender.cpp \\
    $$PWD/fileappender.cpp \\
    $$PWD/helpers/classlogger.cpp \\
    $$PWD/helpers/configuratorhelper.cpp \\
    $$PWD/helpers/datetime.cpp \\
    $$PWD/helpers/factory.cpp \\
    $$PWD/helpers/initialisationhelper.cpp \\
    $$PWD/helpers/logerror.cpp \\
    $$PWD/helpers/logobject.cpp \\
    $$PWD/helpers/logobjectptr.cpp \\
    $$PWD/helpers/optionconverter.cpp \\
    $$PWD/helpers/patternformatter.cpp \\
    $$PWD/helpers/properties.cpp \\
    $$PWD/hierarchy.cpp \\    
    $$PWD/layout.cpp \\
    $$PWD/level.cpp \\
    $$PWD/log4qt.cpp \\
    $$PWD/logger.cpp \\
    $$PWD/loggerrepository.cpp \\
    $$PWD/loggingevent.cpp \\
    $$PWD/logmanager.cpp \\
    $$PWD/mdc.cpp \\
    $$PWD/ndc.cpp \\
    $$PWD/patternlayout.cpp \\
    $$PWD/propertyconfigurator.cpp \\
    $$PWD/rollingfileappender.cpp \\
    $$PWD/simplelayout.cpp \\
    $$PWD/spi/filter.cpp \\
    $$PWD/ttcclayout.cpp \\    
    $$PWD/writerappender.cpp \\
    $$PWD/varia/debugappender.cpp \\
    $$PWD/varia/denyallfilter.cpp \\
    $$PWD/varia/nullappender.cpp \\
    $$PWD/varia/levelmatchfilter.cpp \\
    $$PWD/varia/levelrangefilter.cpp \\
    $$PWD/varia/listappender.cpp \\
    $$PWD/varia/stringmatchfilter.cpp
    

2.2 main函数初始化

​ 在main文件中给日志模块添加配置,并设置消息获取为true;如下

2.3 编写测试

​ 接着就是消息测试,分别测试调试信息qDebug,警告信息qWarning 错误信息qCritical和致命错误qFaltal,在界面上生成4个按钮,分别对应四种消息测试,如下

​ 在对应槽函数里面调用消息接口,如下

/**
 * @brief Widget::on_pushButton_Qdebug_clicked
 * 调试信息测试
 */
void Widget::on_pushButton_Qdebug_clicked()

    qDebug() << "qDebug Testing";


/**
 * @brief Widget::on_pushButton_Qwarning_clicked
 * 一般警告测试
 */
void Widget::on_pushButton_Qwarning_clicked()

    qWarning() << "qWarning Testing";


/**
 * @brief Widget::on_pushButton_QCritical_clicked
 * 严重错误测试
 */
void Widget::on_pushButton_QCritical_clicked()

    qCritical() << "qCritical Testing";


/**
 * @brief Widget::on_pushButton_QFatal_clicked
 * 致命错误测试
 */
void Widget::on_pushButton_QFatal_clicked()

    qFatal("qFatall Testing");

3 最终结果

​ 最终的效果如下:其实如果仅仅是简单的日志记录,还可以自己下一个简单的日志,下一篇我们将尝试自己实现一个日志记录。尽请期待。

☞ 源码

源码链接:GitHub仓库自取

使用方法:☟☟☟


以上是关于QtApplets-Log4QtDemo的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本--文件测试

shell脚本的测试语句--文件测试

如何在测试文件中测试上下文?以及如何从测试文件中的上下文访问值?

修改文件测试的测试点

编写单元测试:如何以编程方式获取包含测试文件的文件夹

Verilog 测试文件怎么写