log4cxx是一個(gè)不錯(cuò)的庫(kù),利用配置文件就可以很靈活的使用它。
說(shuō)說(shuō)具體用法,首先當(dāng)然是在你的C++代碼中寫上Log的各種東西了
#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h>

int _tmain(int argc, _TCHAR* argv[])


{
using namespace log4cxx;

// 讀取配置文件
PropertyConfigurator::configure("log4cxx.cfg");

// 建立兩個(gè)logger
LoggerPtr logger1 = Logger::getLogger("TraceYourMama");
LoggerPtr logger2 = Logger::getLogger("Patch");

LOG4CXX_TRACE(logger1, "跟蹤");
LOG4CXX_WARN(logger1, "警告");
LOG4CXX_DEBUG(logger1, "調(diào)試");
LOG4CXX_ASSERT(logger1, false, "斷言");
LOG4CXX_FATAL(logger1, "致命");

LOG4CXX_TRACE(logger2, "跟蹤");
LOG4CXX_ERROR(logger2, "錯(cuò)誤");
return 0;
}

其實(shí)在實(shí)際應(yīng)用中,每個(gè)類都可以搞一個(gè)logger,然后在配置文件中進(jìn)行如下的設(shè)置:
# 設(shè)置root logger為DEBUG級(jí)別
#log4j.rootLogger=TRACE,ca
log4j.logger.TraceYourMama=ERROR,fa,ha
log4j.logger.Patch=Trace,ca

#設(shè)置spirit為TRACE級(jí)別
#log4j.spirit=DEBUG
#log4j.additivity.spirit=false


# %m - message
# %n - 回車
# %d - 時(shí)間
# %.16c - Logger名稱
# %-5p - log級(jí)別
# %t - thread_id



#對(duì)Appender ca進(jìn)行設(shè)置:
#這是一個(gè)控制臺(tái)類型的Appender
#輸出格式(layout)為PatternLayout
log4j.appender.ca=org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout=org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern=%d %-5p %.16c - %m%n





#對(duì)Appender fa進(jìn)行設(shè)置:
# 這是一個(gè)文件類型的Appender,
# 其輸出文件(File)為./debug.log,
# 輸出方式(Append)為覆蓋方式,
# 輸出格式(layout)為PatternLayout
log4j.appender.fa=org.apache.log4j.FileAppender
log4j.appender.fa.File=./debug.log
log4j.appender.fa.Append=true
log4j.appender.fa.layout=org.apache.log4j.PatternLayout
#log4j.appender.fa.layout.ConversionPattern=%d [%t] %-5p %.16c %x - %m%n
log4j.appender.fa.layout.ConversionPattern=%d %-5p %.16c - %m%n


