本文基于上一篇《Log4Qt 使用(一)》来继续完善一下关于Log4Qt的使用。
在讲解之前,我们首先来看一个例子:
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4qt.conf"); Object obj; return 0; }
其中,log4qt.conf 文件在项目根目录下,是日志的配置文件,内容如下:
log4j.rootLogger=DEBUG,A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
首先,我们分析一下上面内容的性质:
- 配置rootLogger,高于DEBUG的日志被输出,定义一个appender,取名为A1
- 配置A1,输出到控制台
- 设置A1采用的layout,并设置其具体格式
我们看到第二行,一般的系统日志并不会将输出到控制台上,所以我们应该改变一下:
Log4j提供的appender有:
org.apache.log4j.ConsoleAppender |
控制台 |
org.apache.log4j.FileAppender |
文件 |
org.apache.log4j.DailyRollingFileAppender |
每天产生一个日志文件 |
org.apache.log4j.RollingFileAppender |
文件大小到达指定尺寸的时候产生一个新的文件 |
好,现在我们剩下的一个问题是:如何制定输出日志文件的名字。
# LOG4J daily rolling log files configuration log4j.rootLogger=DEBUG, RollingAppender log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender # current log file name "app.log" log4j.appender.RollingAppender.File=./logs/app.log # back up "app.log" to "app.log.yyyy-MM-dd" log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd # Set the append to false, should not overwrite #log4j.appender.RollingAppender.Append=true #log4j.appender.RollingAppender.maxBackupIndex=7 log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n