Log4Qt是使用Trolltech Qt Framework的Apache Software Foundation Log4j包的C ++端口。它旨在供开源和商业Qt项目使用。Log4Qt主要是用来记录日志(有助于程序调试)。有3个主要的组件:
- Logger:提供日志记录服务,可以有多个Logger存在,每个有它们自己的名字。Logger间存在隶属关系,有一个Logger称为根Logger。
- Appender:用来指明将日志记录到什么地方:比如,控制台、文件、数据库,等等
- Layout:控制日志的输出格式,可以类比一下C中的printf哈。
1.源码下载
当前最新版本为log4qt-0.3.zip,这源码包最后修改日期为2009年3月1日。
- Sourceforge 下载地址:Log4Qt - Logging for C++/Qt download | SourceForge.net
- github下载地址:https://github.com/devbean/log4qt
- Gitee下载地址:Gitee 极速下载/log4qt
2.将log4Qt源码添加到Qt工程
将log4Qt源码拷贝到工程目录中,在.pro文件中添加以下配置:
include (log4qt/log4qt.pri)
3.log4Qt使用
配置文件log.conf(注意:在使用时需要将中文部分删除掉):
log4j.rootLogger=WARN,Mylog1 这里的WARN表示日志仅记录WARN及以上等级的输出,DEBUG,INFO不做记录
log4j.appender.Mylog1=org.apache.log4j.FileAppender 将日志记录到文件
log4j.appender.Mylog1=org.apache.log4j.RollingFileAppender 滚动时存储
log4j.appender.Mylog1.layout=org.apache.log4j.PatternLayout
log4j.appender.Mylog1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] :%m%n日志输出格式,%m表示日志信息字符串,%n表示换行
log4j.appender.Mylog1.File=mytest.log 日志文件名称
log4j.appender.Mylog1.MaxFileSize=50KB 每个日志文件最大大小,其它单位MB,GB
log4j.appender.Mylog1.MaxBackupIndex=2 日志滚动个数,这里2就是只生成mytest.log.1 mytest.log.2
log4j.appender.Mylog1.AppendFile=true 追加模式
log4j.appender.Mylog1.ImmediateFlush=true 立即输出
头文件:
/* log4qt头文件引用 */
#include "log4qt/logger.h"
#include "log4qt/logmanager.h"
#include "log4qt/propertyconfigurator.h"
使用:
/* 根据指定的日志配置文件初始化日志 */
Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log.conf");
Log4Qt::Logger *mylog1 = Log4Qt::Logger::logger("Mylog1");
/* 日志输出 */
mylog1->debug("log debug");
mylog1->info("log info");
mylog1->warn("log warn");
mylog1->error("log error");
mylog1->fatal("log fatal");
/* 处理qt调试输出信息,将qDebug之类的信息重定向到日志文件 */
Log4Qt::LogManager::setHandleQtMessages(true);
qDebug("qDebug");
qInfo("qInfo");
qWarning("test");
qCritical("qCritical");
qFatal("qFatal");