關於spdlog的說明


各位看官,本人最近正在致力於研究log的寫法,其中我看了一下我們公司,用的是github上的一個開源項目spdlog,所以我就研究了一下,並且試着模仿了一下我們公司打log的方法,現在就和各位看官一起分享一下。

 

一、Spdlog的定義以及他的優點

二、Spdlog如何移植

三、SpdLog的基本結構特性

四、我這邊是如何使用

 

 

一、Spdlog的定義以及他的優點

 

Spdlog是一款開源的,基於c++的的日志庫,簡單來說,只要我們采用了這個開源庫,我們就可以隨意的來記錄日志了(這個日志包括再stdout上顯示和再文件中顯示)。它有如下特性:

優點:1、它是一款輕量級別的庫,我全部下載完也不過幾百k(壓縮包)。

          2、他的使用條件非常靈活,可以單線程用,也可以多線程用(不過我還沒玩過多線程),

          3、使用形式非常靈活,就是你想把log形式定義成什么樣的都可以。

          4、輸出形式靈活並且效果很好,比如你可以設置成日志一天一清,也可以把日志設置成多個文件的,另外輸入的日志也可以設置顏色,這也是我最喜歡的部分。

          5、日志分層:日志分成INFODEBUGTRACEERROR等多種分層,我們可以根據需要設置自己每一條日志的等級。

          6、我覺得開發這個的作者很貼心,把所有的使用方法都寫成例子讓你去看。

 

缺點:1、它必須是基於c++11以上版本的(其實我覺得這都不能算是缺點)

二、spdlog如何移植

我覺得spdlog移植的方法也很容易,只需要按照三個步驟:(我是linux系統的)

1、下載,放入linux系統

2、解壓

3、創建build,進入build目錄,執行cmake .. &make install(這里要說明的是一定要用make install,如果用make -j,如果只是把include放進去,會提示你沒有權限)。好了,這樣我們的spdlog就移植完成了。

三、spdlog的基本結構特性

我們從兩個方面來說明:

橫向方面:根據我們輸入日志的不同我們創建的類型也有所不同(為了節省時間,我就不寫參數了)

1、創建當天日志

spdlog::daily_logger_mt

說明:該日志創建成功以后,寫入的日志只在當天生效,簡單來說,就是在一天的某個時間點(這個函數中有參數可以設置)就會把日志清空。

2、創建多個文件日志

spdlog::rotating_logger_mt

說明:該日志創建成功以后,如果我們寫入的日志大小大於某個值(這個值參數當中會有設置)會創建一個新文件,然后將新的日志寫入到新文件當中。另外還要注意的是創建的文件數目也可以設定。

3、創建單個文件日志

spdlog::basic_logger_mt

說明:該日志創建成功以后,我們只會創建單個文件,所有日志都會一直再這個文件中累加。

4、輸出終端

spdlog::stdout_color_mt

說明:該日志創建成功以后,我們的日志會自動打印到終端上,另外,每一種等級的日志顏色都會有所不同。

 

當然,example中提供的方法還遠不止這幾種,比如二進制的輸出,異步的輸出等等,不過我這里能用到的就是這些了。

縱向:

1、創建日志

2、設置level的值(默認是info

3、使用函數打印

 

四、我這邊如何使用

1、創建日志的值(我這邊默認的是rotating

2、設置log等級和pattern

3、使用宏封一層

4、直接使用

 

總結:今天聊了spdlog的特性,安裝,基本數據類型和使用,總體來說我覺得簡單,輕便,使用起來容易上手,真的是一個很不錯的代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM