赞
踩
前言:
开发平台:Win10 64位
开发环境:Qt Creator 13.0.0
构建环境:Qt 5.15.2 +MSVC2019 64位
例如:上一篇文章中笔者记录了Log4qt的编译及配置使用,这篇文章重点写下每天产生文件到指定文件夹中,形成模板,方便日后直接使用。
准备好log4qt的链接库及头文件,并将其复制到创建的工程的指定目录中,如有不清楚的地方可以看下笔者上一篇文章https://blog.csdn.net/roujian0985/article/details/138698735。
其实用不用logConversionPattern就是个输出布局格式的问题,logConversionPattern具体使用看下参考文献4.2,笔者就不多赘述了。
#设置储存log文件的根目录,生成的日志文件会存在Logs文件夹中 logpath=./Logs log4j.reset=true log4j.Debug=WARN log4j.threshold=NULL #设置是否监听QDebug输出的字符串 log4j.handleQtMessages=true #在运行中,是否监视此文件配置的变化 log4j.watchThisFile=false #第一个值:设置根Logger的输出log等级为All,即DEBUG之上级别的都被记录 #后面的值:设置输出源,console,daily,如果还想文件滚动输出再加上rolling log4j.rootLogger=ALL,console,daily #设置Log输出的几种输出源(appender.console、appender.daily、appender.rolling):上面设置几个输出源下面写几个 #console:设置终端打印记录器,和上面log4j.rootLogger的设置值console呼应 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=STDOUT_TARGET log4j.appender.console.layout=org.apache.log4j.TTCCLayout log4j.appender.console.layout.dateFormat=yyyy.MM.dd hh:mm:ss.zzz log4j.appender.console.layout.contextPrinting=true log4j.appender.console.threshold=ALL #daily:设置一个每日储存一个log文件的记录器,和上面log4j.rootLogger的设置值daily呼应 log4j.appender.daily=org.apache.log4j.DailyFileAppender log4j.appender.daily.file=${logpath}/log4qt.log log4j.appender.daily.appendFile=true log4j.appender.daily.datePattern=_yyyy_MM_dd log4j.appender.daily.keepDays=90 log4j.appender.daily.layout=${log4j.appender.console.layout} log4j.appender.daily.layout.dateFormat=${log4j.appender.console.layout.dateFormat} log4j.appender.daily.layout.contextPrinting=${log4j.appender.console.layout.contextPrinting}
#设置储存log文件的根目录,生成的日志文件会存在Logs文件夹中 logpath=./Logs # 配置日志的输出格式: %r耗费毫秒数 %p日志的优先级 %t线程名 %C所属类名通常为全类名 %L代码中的行号 %x线程相关联的NDC %m日志 %n换行 logConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.zzz}][%-5p][%-2t] >> %m %n log4j.reset=true log4j.Debug=WARN log4j.threshold=NULL #指定日志消息的输出最低层次 #设置是否监听QDebug输出的字符串 log4j.handleQtMessages=true #在运行中,是否监视此文件配置的变化 log4j.watchThisFile=false #第一个值:设置根Logger的输出log等级为All,即DEBUG之上级别的都被记录 #第二个值:设置输出源,console,daily,如果还想文件滚动输出再加上rolling log4j.rootLogger=ALL,console,daily #设置Log输出的几种输出源(appender.console、appender.daily、appender.rolling):上面设置几个输出源下面写几个 ############################################################################################### #console:设置终端打印记录器,和上面log4j.rootLogger的设置值console呼应 log4j.appender.console=org.apache.log4j.ConsoleAppender # 输出 log4j.appender.console.Target = System.out # 配置CONSOLE设置为自定义布局模式 log4j.appender.console.layout=org.apache.log4j.PatternLayout # 配置logfile为自定义布局模式 log4j.appender.console.layout.ConversionPattern=${logConversionPattern} ############################################################################################### ############################################################################################### #daily:设置一个每日储存一个log文件的记录器,和上面log4j.rootLogger的设置值daily呼应 log4j.appender.daily=org.apache.log4j.DailyFileAppender log4j.appender.daily.file=${logpath}/log4qt.log log4j.appender.daily.appendFile=true log4j.appender.daily.datePattern=_yyyy_MM_dd log4j.appender.daily.keepDays=90 # 配置logfile为自定义布局模式 log4j.appender.daily.layout=org.apache.log4j.PatternLayout log4j.appender.daily.layout.ConversionPattern=${logConversionPattern} ###############################################################################################
在main函数中将配置文件引入,然后正常写debug就可以了,会重定向系统debug(error)等操作到log4qt中。
#include "mainwindow.h" #include <QApplication> #include <log4qt/log4qt.h> #include <log4qt/propertyconfigurator.h> int main(int argc, char *argv[]) { QApplication a(argc, argv); Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4qt.ini"); qDebug()<<"11"; MainWindow w; w.show(); return a.exec(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。