一、簡介 spdlog是c++下一個輕量級高效日志庫,spd是speed的縮寫,該庫支持vs2013以上版本。 二、當(dāng)前軟件及需要的軟件 操作系統(tǒng)為Windows 10, 編譯IDE環(huán)境為VS2012,無CMake與spdlog。 三、安裝歷程 github上的spdlog最低支持VS2013,我下的版本是spdlog-1.14.1,資源鏈接如下:https://codeload.github.com/gabime/spdlog/zip/refs/tags/v1.14.1 卸載VS2012,并安裝VS2019。cmake開始用的是3.12.0版本,此版本支持VS最高版本為VS2017,如果非要選擇的話,會提示 CMake Error at CMakeLists.txt:13 (project): Failed to run MSBuild command: MSBuild.exe 后為下載cmake-3.28.5-windows-x86_64.msi,該版本支持VS2019。 四、編譯 如下圖,進行配置,上一層目錄為spdlog源碼目錄,下一層目錄為源碼目錄下的build目錄,選完后點Configure,再點Generate即可生成VS2019所對應(yīng)的工程。 五、移植到項目 5.1 路徑設(shè)置 以上分別對應(yīng)庫文件位置和頭文件位置,并在vs2019中設(shè)置: 此時就可以使用spdlog庫了。 5.2、添加頭文件 // cpp #include "spdlog\spdlog.h" #include "spdlog\cfg\env.h" #include "spdlog\fmt\ostr.h" auto daily_logger = spdlog::daily_logger_mt("daily_logger", "logs/daily.txt", 2, 30); auto類型是無法定義成全局變量,而且也不能定義為成員變量,auto自身特性決定它只能作為臨時變量,為了能成為全局變量,需要明確的類型。 #include "spdlog\spdlog.h" #include "spdlog\cfg\env.h" #include "spdlog\fmt\ostr.h" #include "spdlog\sinks\daily_file_sink.h" std::shared_ptr<spdlog::logger> daily_logger = spdlog::daily_logger_mt("daily_logger", "logs/daily.txt", 2, 30); 在其它cpp文件中只要如下聲明就可以使用這個全局變量了: #include "spdlog\sinks\daily_file_sink.h" extern std::shared_ptr<spdlog::logger> daily_logger; 這是只是將每日生成日志功能作為一個實例來講解,其它類型日志均可參考以上流程與代碼。 |
|
來自: 武林幽憶 > 《碼農(nóng)生涯》