log4cpp是一個開源的C++類庫,它提供了在C++程序中使用日誌和跟蹤調試的功能。使用log4cpp,可以很
便利地將日誌或者跟蹤調試信息寫入字符流、內存字符串隊列、文件、回滾文件、調試器、Windows日誌、本
地syslog和遠程syslog服務器中。
Log4cpp是個基於LGPL的開源項目,移植自Java的日誌處理跟蹤項目log4j,並保持了API上的一致。其類
似的支持庫還包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(log4p)等。
Log4cpp有如下優點:
•提供了可擴展的多種日誌記錄方式
•提供了NDC(嵌套診斷上下文),可用於多線程、多場景的跟蹤調試
•提供了完整的日誌動態優先級控制,可隨時調整需要記錄的日誌優先級
•可通過配置文件完成所有配置並動態加載
•性能優秀,內存佔用小,經過編譯後的log4cpp.dll大小僅有160kb
•代碼級的平臺無關性,Log4cpp源代碼經過編譯後,適用於大多數主流的操作系統和開發工具
•概念清晰,學習和使用方便,熟練程序員一天之內即可很好地應用log4cpp進行開發。
Log4cpp的主頁爲:http://sourceforge.net/projects/log4cpp/
Log4cpp中的概念繼承自log4j,最重要的是Category(種類)、Appender(附加目的地)和Layout(佈局)
三個概念,此外還有Priority(優先級)和NDC(嵌套的診斷上下文)等。
簡言之,Category負責向日志中寫入信息,Appender負責指定日誌的目的地,Layout負責設定日誌的格式
,Priority被用來指定Category的優先級和日誌的優先級, NDC則是一種用來區分不同場景中交替出現的
日誌的手段。