天天看點

c++ 開源日志庫選擇1.log4cplus2.log4cxx3. glog4. Log4cpp5. liblogger

待選為 glog、log4cplus、log4cpp、log4cxx

目前準備使用glog,使用友善,性能也不錯,待進一步試驗,如果有不能滿足的功能就轉用 log4cplus,功能很全面,不過稍複雜些。

其它兩個都是三年前就沒更新,沒好感,暫不準備使用。

功能全面,使用稍複雜。

代碼示例: 

#include <log4cplus/layout.h>

#include <log4cplus/configurator.h>

#include <iomanip>

SharedAppenderPtr pFileAppender(new FileAppender("testlog.log"));

Logger pTestLogger = Logger::getInstance("LoggerName");

pTestLogger.addAppender(pFileAppender); 

sprintf(a,"%d",i);

LOG4CPLUS_WARN(pTestLogger, "This is a <Warn> log message..." << a );   

怕麻煩,沒有下載下傳測試。 

最新版本: 0.3.2  2012-1-12

使用友善,性能也不錯。

Google Glog 是一個C++語言的應用級日志記錄架構,提供了 C++ 風格的流操作和各種助手宏。

  Google glog是一個基于程式級記錄日志資訊的c++庫,程式設計使用方式與c++的stream操作類似

代碼示例:

#include <glog/logging.h>

google::InitGoogleLogging(argv[0]);

google::SetLogDestination(google::INFO,"./myInfo_");

LOG(INFO) << "This is a <Warn> log message..." << i; 

 最新版1.0.x   2007-09-03

感覺 跟 log4cplus類似,結構稍簡單些,不過代碼也不少寫。 

#include <log4cpp/Category.hh>

#include <log4cpp/PropertyConfigurator.hh>

#include <log4cpp/NDC.hh>

#include <log4cpp/FileAppender.hh>

#include <log4cpp/BasicLayout.hh>

log4cpp::Layout* layout = new log4cpp::BasicLayout();

log4cpp::Appender* appender = new log4cpp::FileAppender("FileAppender", "./test_log4cpp1.log");

appender->setLayout(layout);

log4cpp::Category& warn_log = log4cpp::Category::getInstance("mywarn");

warn_log.setAdditivity(false);

warn_log.setAppender(appender);

warn_log.setPriority(log4cpp::Priority::WARN);

warn_log.critStream() << "This is a <Warn> log message..." << i; 

參考位址:http://sourceforge.net/projects/liblogger/