在使用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