在使用log4qt的時候,我們常常需要涉及日誌分類,按模塊和按級別輸出到不同目的地。本人借花獻佛,將一朋友在論壇中成功記錄在此,方便大夥查閱。
腳本配置
# Libfetion-gui project
# define the root logger with two appenders writing to console and file
log4j.rootLogger =DEBUG,Console
####outputlog to console#########
#define the appender named CONSOLE
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p %x %m%n
log4j.logger.A1=DEBUG,CONSOLE,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=logs/a1.txt
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.logger.A2=DEBUG,CONSOLE,A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=logs/a2.txt
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.logger.A3=DEBUG,CONSOLE,A3
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.File=logs/a3.txt
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
這裏定義了Console、A1、A2、A3共計3個擴展器,可分別輸出到控制檯、logs/a1.txt、logs/a2.txt、logs/a3.txt中。
它們是通過定義不同的logger來做到不同位置和級別定位的。由於logger帶名稱(如A1),也可以爲特定重要模塊定義自有的日誌。
問題:不知道Console輸出到什麼地方去了!?
調用示例
Log4Qt::BasicConfigurator::configure();
Log4Qt::PropertyConfigurator::configure(QCoreApplication::applicationDirPath() + "/log4qt.properties");
Log4Qt::Logger *a1 = Log4Qt::Logger::logger("A1");
al->info("the message of log");//the log save at logs/a1.log
Log4Qt::Logger *a2 = Log4Qt::Logger::logger("A2");
a2->info("the message of log");//the log save at logs/a2.log
Log4Qt::Logger *a3 = Log4Qt::Logger::logger("A3");
a3->info("the message of log");//the log save at logs/a3.log