本文已参与「新人创作礼」活动,一起开启掘金创作之路。
QtApplets-Log4QtDemo
今天撸一下Log4Qt版本的日志系统,今天目的就是能用就行。
QtApplets-Log4QtDemo1 获取源代码2 如何使用2.1 包含模块文件2.2 main函数初始化2.3 编写测试3 最终结果☞ 源码
关键字:
log4Qt、Qt、log4、日志、Demo
1 获取源代码
这里直接百度就好。
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仓库自取
使用方法:☟☟☟