日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

日志库EasyLogging++学习系列(1)—— 简要介绍

發布時間:2025/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日志库EasyLogging++学习系列(1)—— 简要介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于有開發經驗的程序員來說,記錄程序執行日志是一件必不可少的事情。通過查看和分析日志信息,不僅可以有效地幫助我們調試程序,而且當程序正式發布運行之后,更是可以幫助我們快速、準確地定位問題。在現在這個開源的年代,并不需要我們自己去寫一套日志庫,開源的版本已經有很多了。然而遺憾的是,在目前開源的C++日志庫中,并沒有一個在使用份額上占絕對優勢的,我自己之前用過log4cplus和glog,這兩個庫都比較成熟了,而且網上教程也很多,所以一直都很喜歡使用這兩個日志庫。


前段時間,在GitHub上我偶然看到了另外一個開源的C++日志庫,當時還只是粗略地研究了一下,結果竟然讓我愛不釋手,它就是Easylogging++。和log4cplus和glog相比,Easylogging++最大的特點就是它只有一個頭文件并且無需任何外部依賴我從來沒有見過哪一個日志庫可以做到如此輕量而且還能兼顧性能的。除此之外,Easylogging++使用起來非常簡單,同時還支持文件配置,提供了強大的自定義日志格式的能力,還提供對第三方庫,STL容器的支持。面對如此炫酷的開源日志,怎么能不去學習學習!!!


Easylogging++項目在GitHub的開源地址:https://github.com/easylogging/easyloggingpp


功能特征

  • 高度可配置
  • 速度非常快
  • 線程和類型安全
  • 跨平臺
  • 自定義日志模式
  • 條件日志和偶然日志
  • 性能跟蹤
  • 詳細記錄日志
  • 中斷處理
  • 輔助CHECK宏
  • STL 日志
  • 第三方庫日志(比如Qt, boost, wxWidgets
  • 可擴展性
  • 支持Debug功能
  • 系統日志記錄
  • perror風格日志
  • C++流操作符風格日志
  • C 語言printf風格日志
  • ?……

版本說明

寫這篇文章時,最新的?Easylogging++ 版本是V9.80,如果編譯器不支持C++11的話,是無法編譯的。對于Visual Studio系列來說,必須是VS2012或以上版本才行。如果還停留在VS2010、VS2008,VS2005的小伙伴,可以考慮使用EasyLogging++ V8.91版本。需要注意的是,不同的版本在使用方法和功能支持上都會有所差異。特別指出,本系列中所有的學習記錄,只適用于?Easylogging++?版本V9.80另外,在本系列文章中出現的所有演示代碼都是在 64Bit Windows 7 系統下使用 Visual Studio 2013 編譯測試的。


快速使用


正如前面所說,Easylogging++使用起來非常簡單,簡單到什么地步呢?下面是GitHub上給出一個示例代碼:

[cpp] view plaincopy print?
  • #include?"easylogging++.h"??
  • ??
  • INITIALIZE_EASYLOGGINGPP??
  • ??
  • int?main(int?argv,?char*?argc[])?{??
  • ???LOG(INFO)?<<?"My?first?info?log?using?default?logger";??
  • ???return?0;??
  • }??
  • #include "easylogging++.h"INITIALIZE_EASYLOGGINGPPint main(int argv, char* argc[]) {LOG(INFO) << "My first info log using default logger";return 0; } 示例代碼只有短短幾行,每行代碼的作用也一目了然:
    • 包含easylogging++.h頭文件
    • 使用宏 INITIALIZE_EASYLOGGINGPP?初始化
    • 使用宏 LOG(INFO) 開始日志記錄
    就是這么簡單,只需三步,即可完成你的日志記錄。這里需要特別說明的是,初始化宏?INITIALIZE_EASYLOGGINGPP 必須使用而且只能使用一次,否則將會產生編譯錯誤。最好的放置這個初始化宏的地方是位于程序入口函數所在文件的頂部,緊跟在包含頭文件的代碼后面。
    自定義日志
    Easylogging++強大的自定義日志格式的能力是毋容置疑的,我們可以通過配置文件、配置參數、配置宏定義等方式來定義自己想要的日志格式。下面是一個利用配置文件來自定義日志的一個例子: [cpp] view plaincopy print?
  • #include?"easylogging++.h"??
  • ??
  • INITIALIZE_EASYLOGGINGPP??
  • ??
  • int?main(int?argc,?char**?argv)??
  • {??
  • ????el::Configurations?conf("my_log.conf");??
  • ????el::Loggers::reconfigureAllLoggers(conf);??
  • ??
  • ????LOG(TRACE)???<<?"*****?trace?log??*****";??
  • ????LOG(DEBUG)???<<?"*****?debug?log??*****";??
  • ????LOG(ERROR)???<<?"*****?error?log??*****";??
  • ????LOG(WARNING)?<<?"*****?warning?log??*****";??
  • ????LOG(INFO)????<<?"*****?info?log??*****";??
  • ??
  • ????system("pause");??
  • ????return?0;??
  • }??
  • #include "easylogging++.h"INITIALIZE_EASYLOGGINGPPint main(int argc, char** argv) {el::Configurations conf("my_log.conf");el::Loggers::reconfigureAllLoggers(conf);LOG(TRACE) << "***** trace log *****";LOG(DEBUG) << "***** debug log *****";LOG(ERROR) << "***** error log *****";LOG(WARNING) << "***** warning log *****";LOG(INFO) << "***** info log *****";system("pause");return 0; } 其中配置文件 my_log.conf 的內容如下: [plain] view plaincopy print?
  • *?GLOBAL:??
  • ????ENABLED?????????????????=???true??
  • ????TO_FILE?????????????????=???true??
  • ????TO_STANDARD_OUTPUT??????=???true??
  • ????FORMAT??????????????????=???"[%level?|?%datetime]?|?%msg"??
  • ????FILENAME????????????????=???"log\\log_%datetime{%Y%M%d}.log"??
  • ????MILLISECONDS_WIDTH??????=???3??
  • ????PERFORMANCE_TRACKING????=???false??
  • ????MAX_LOG_FILE_SIZE???????=???1048576??
  • ????LOG_FLUSH_THRESHOLD?????=???0??
  • ??????
  • *?TRACE:??
  • ????FILENAME????????????????=???"log\\trace_log_%datetime{%Y%M%d}.log"??
  • ??????
  • *?DEBUG:??
  • ????FILENAME????????????????=???"log\\debug_log_%datetime{%Y%M%d}.log"??
  • ??????
  • *?FATAL:??
  • ????ENABLED?????????????????=???false??
  • ??????
  • *?ERROR:??
  • ????FILENAME????????????????=???"log\\error_log_%datetime{%Y%M%d}.log"??
  • ??????
  • *?WARNING:??
  • ????FILENAME????????????????=???"log\\warning_log_%datetime{%Y%M%d}.log"??
  • ??????
  • *?INFO:??
  • ????FILENAME????????????????=???"log\\info_log_%datetime{%Y%M%d}.log"??
  • ??????
  • *?VERBOSE:??
  • ????ENABLED?????????????????=???false??
  • * GLOBAL:ENABLED = trueTO_FILE = trueTO_STANDARD_OUTPUT = trueFORMAT = "[%level | %datetime] | %msg"FILENAME = "log\\log_%datetime{%Y%M%d}.log"MILLISECONDS_WIDTH = 3PERFORMANCE_TRACKING = falseMAX_LOG_FILE_SIZE = 1048576LOG_FLUSH_THRESHOLD = 0* TRACE:FILENAME = "log\\trace_log_%datetime{%Y%M%d}.log"* DEBUG:FILENAME = "log\\debug_log_%datetime{%Y%M%d}.log"* FATAL:ENABLED = false* ERROR:FILENAME = "log\\error_log_%datetime{%Y%M%d}.log"* WARNING:FILENAME = "log\\warning_log_%datetime{%Y%M%d}.log"* INFO:FILENAME = "log\\info_log_%datetime{%Y%M%d}.log"* VERBOSE:ENABLED = false 通過這樣的一個配置文件生成出來的日志會非常整齊,同時日志信息會保存到不同的文件中,而且還會輸出到標準輸出窗口。如下:

    看到這里,相信對于那些以前用過類似log4cplus或者glog等日志庫的小伙伴來說,其實已經完全可以上手使用Easylogging++了,剩下的部分都是一些細節或者是Easylogging++擴展性的功能介紹,這些會在后面的學習中逐漸加以記錄。如果有和我一樣看到并且就喜歡上Easylogging++的朋友,就讓我們一起來深入了解Easylogging++并把它應用到實際的開發之中吧。

    總結

    以上是生活随笔為你收集整理的日志库EasyLogging++学习系列(1)—— 简要介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久精品国产欧美亚洲人人爽 | 欧美亚州 | 最新亚洲精品 | 精品人妻一区二区三区久久夜夜嗨 | 国产又粗又猛又爽又黄又 | 国产欧美一区二区三区在线 | 骚虎免费视频 | 国产成人在线看 | 国产午夜福利在线播放 | 五月六月婷婷 | 国产 欧美 日韩 | 久草福利在线 | 波多野结衣av一区二区全免费观看 | 成人美女在线 | 久久成人精品 | 亚洲精品乱码久久久久久蜜桃麻豆 | 国产九区 | 精品一区二区三区免费毛片爱 | 国产在线不卡视频 | 亚洲av成人精品午夜一区二区 | 精品午夜一区二区三区 | 日韩免费av一区 | 日韩毛片视频 | 欧美两根一起进3p做受视频 | 自拍偷拍亚洲 | 男女在线免费观看 | 美女的胸给男人玩视频 | 午夜成人免费影院 | 第一av在线 | 亚洲一区二区人妻 | 国产精品久久久久久久一区探花 | 激情内射亚洲一区二区三区爱妻 | 久久久久亚洲av成人无码电影 | 牲欲强的熟妇农村老妇女视频 | 日韩av在线播 | 一区二区成人在线 | 变态另类一区 | 狼人狠狠干 | 后进极品美女白嫩翘臀 | 中文字幕天堂av | 久草资源在线 | 久操视频免费在线观看 | 欧美一级做性受免费大片免费 | www视频在线观看免费 | 亚洲欧美日本一区二区三区 | 亚洲精品视频播放 | 99网站| 极品少妇一区 | 午夜小福利 | 成人久久av| 三级全黄做爰龚玥菲在线 | av在线导航 | 国产aa视频 | a免费在线观看 | 亚洲AV成人无码久久精品巨臀 | 在线中文字幕亚洲 | 天天国产视频 | 欧美淫视频 | 国产无限资源 | 日日噜 | 成人免费aaa| 久久精品一区二区免费播放 | 天天色天天射天天操 | 人妻奶水人妻系列 | 天天国产视频 | 午夜激情av | 精品无码国产一区二区三区51安 | 老妇荒淫牲艳史 | 亚洲网站在线看 | 特级黄色一级片 | 一二三四区视频 | 韩毛片 | 国内精品免费 | 一区二区免费在线观看 | 麻豆视频免费版 | 善良的女邻居在线观看 | 国产区一区二区三区 | 91二区| 假日游船 | 麻豆视频91 | 亚洲第一页夜 | 成人黄色免费视频 | 中文字幕www | 中文在线天堂网 | 老熟妇午夜毛片一区二区三区 | 91久久免费| 岛国精品资源网站 | 在线免费观看视频网站 | 成人91免费 | 国产精品无码一区二区三 | 国产精品美女久久久久图片 | 日本一级黄色大片 | 精品人妻伦一二三区免费 | 天天综合天天综合 | 日本不卡在线 | 亚洲欧美成人一区 | 亚洲性色av| 性欧美69 | 美女扒开屁股让男人捅 |