歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下日志設備文件-----logger

Linux下日志設備文件-----logger

日期:2017/2/28 14:26:26   编辑:Linux教程

剛接觸logger,所有的記錄信息都是寫在一個日志文件中,後來發現這樣查看起來不太方便,於是想分類,比如info信息專門一個文件,error信息專門一個文件。

之前的日志配置文件log4qt.conf是這樣的:

### set log levels ###
log4j.rootLogger =DEBUG, DLOG


###%d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n###

### 寫入文件###
log4j.appender.DLOG = Log4Qt::FileAppender
log4j.appender.DLOG.File = logs/log.log
log4j.appender.DLOG.AppendFile = true
log4j.appender.DLOG.layout = Log4Qt::PatternLayout
log4j.appender.DLOG.layout.ConversionPattern = [VeeLang] %-d{yyyy-MM-dd HH:mm:ss} [%r ms] %l [%-5p] [%c] - %m\n

就是DEBUG級別以上的都可以寫進log/log.log中。

代碼實現引用:

#include "logger.h"
#include "propertyconfigurator.h"
#include "logmanager.h"

.h:

private: \
mutable Log4Qt::ClassLogger mLog4QtClassLogger; \
public: \
inline Log4Qt::Logger *logger() const \
{ return mLog4QtClassLogger.logger(this); } \
private:

.cpp

Log4Qt::PropertyConfigurator::configure(a.applicationDirPath()+"/Configuration/log4qt.conf");
Log4Qt::Logger *logger = Log4Qt::LogManager::rootLogger();

logger->info("Application began to run---NH3-10");

這樣就實現了日志記錄。

目前要做的是記錄在不同的日志文件中。

修改log4qt.conf:



### set log levels ###



###%d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n###

###輸出到文件 ###
log4j.logger.A1=INFO,A1
log4j.appender.A1= Log4Qt::FileAppender
log4j.appender.A1.File = logs/log.log
log4j.appender.A1.AppendFile = true
log4j.appender.A1.layout = Log4Qt::PatternLayout
log4j.appender.A1.layout.ConversionPattern = [SZom] %-d{yyyy-MM-dd HH:mm:ss} [%r ms] %l [%-5p] [%c] - %m\n


###輸出到文件 ###
log4j.logger.A2=WARN,A2
log4j.appender.A2 = Log4Qt::FileAppender
log4j.appender.A2.File = logs/error.log
log4j.appender.A2.AppendFile = true
log4j.appender.A2.layout = Log4Qt::PatternLayout
log4j.appender.A2.layout.ConversionPattern = [SZom] %-d{yyyy-MM-dd HH:mm:ss} [%r ms] %l [%-5p] [%c] - %m\n



意思是在log.log和error.log中分別記錄信息

本來是加log4j.appender.A1.Threshold = INFO做區分,不過執行的時候出了問題,CSDN上看到有人這麼處理(http://bbs.csdn.net/topics/390344244)

代碼裡實現如下:

.cpp:

Log4Qt::PropertyConfigurator::configure("./logs/log4qt.conf");
Log4Qt::Logger *logInfo = Log4Qt::Logger::logger("A1");
Log4Qt::Logger *logError = Log4Qt::Logger::logger("A2");
logInfo->info("Application begin....");
logError->warn("Application begin....");

以後分別用logInfo 和logError操作,分析了下後發現其實就是定義了兩個文件,然後再設置級別。

[level]級別如下:

FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7

Copyright © Linux教程網 All Rights Reserved