待選為 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/