C++第三方日志庫log4cplus的安裝與使用配置教程
一、log4cplus介紹
log4cplus是C++編寫的開源的日志系統(tǒng),前身是java編寫的log4j系統(tǒng),受Apache Software License保護,作者是Tad E. Smith。
log4cplus具有線程安全、靈活、以及多粒度控制的特點,通過將日志劃分優(yōu)先級使其可以面向程序調(diào)試、運行、測試、和維護等全生命周期。你可以選擇將日志輸出到屏幕、文件、NT event log、甚至是遠(yuǎn)程服務(wù)器;通過指定策略對日志進行定期備份等等。
二、log4cplus下載
下載鏈接:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/2.0.7/
最新穩(wěn)定版2.0.7(2022.2.21)
官方文檔:https://sourceforge.net/p/log4cplus/wiki/Home/
三、log4cplus配置
3.1 打開解決方案
打開Visual Studio,進入 log4cplus-2.x\msvc14目錄下,運行l(wèi)og4cplus.sln解決方案。

3.2 進行相應(yīng)設(shè)置
編譯log4cplus需要注意三點:
①解決方案的平臺與目標(biāo)程序一致,這里選擇的是x64;
②版本也要與目標(biāo)程序一致,這里選擇的是release版本;
③屬性里面的字符集和目標(biāo)程序一致;

選擇log4cplus項目,右鍵——>屬性——>配置屬性——>常規(guī)——>字符集,選擇Unicode字符集,如下圖所示。(log4cplus默認(rèn)使用多字節(jié)字符集,而VS新建項目默認(rèn)使用Unicode字符集,如果不修改此處,則后面新建項目使用生成的dll時需要手動修改新建的項目為多字節(jié)字符集,否則會報錯,總之兩邊統(tǒng)一用一種即可)

編譯完成后,會在log4cplus-2.x\msvc14\x64\bin.Release文件夾下生成我們需要的log4cplus.lib和log4cplus.dll兩個文件(我編譯的是release版),如下圖所示。

3.3 目標(biāo)程序的配置
將log4cplus-2.0.x目錄下的include文件夾拷貝到我們的目標(biāo)程序文件夾中,這里面是我們需要的頭文件;在目標(biāo)程序的屬性里面設(shè)置頭文件的包含目錄。
設(shè)置lib文件的庫目錄以及將lib文件填入附加依賴項,如下圖所示。

將dll文件放到程序的根目錄:如果運行的是VS放置到和*.vcxproj一個文件夾下,如果運行的是*.exe,則和*.exe放置到一個文件夾下。

右鍵——>屬性——>鏈接器——>輸入——>附加依賴項——>加入log4cplus.lib,如下圖所示。

如果不添加上述附加依賴項,則需要在代碼開頭中添加如下代碼:
#pragma comment(lib, "log4cplus.lib")
四、測試Demo
簡單測試:
#include <log4cplus/log4cplus.h>
//#pragma comment(lib, "log4cplus.lib")
int main()
{
//初始化
log4cplus::Initializer initializer;
log4cplus::BasicConfigurator config;
config.configure();
log4cplus::Logger logger = log4cplus::Logger::getInstance(
LOG4CPLUS_TEXT("main"));
LOG4CPLUS_WARN(logger, LOG4CPLUS_TEXT("Hello, World!"));
return 0;
}參考:
https://blog.csdn.net/u012372584/article/details/104470098
https://blog.csdn.net/xinyunyxq/article/details/19011315
https://blog.51cto.com/u_15138784/2736212
到此這篇關(guān)于C++第三方日志庫log4cplus的安裝與使用超詳解的文章就介紹到這了,更多相關(guān)C++第三方日志庫log4cplus內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++基礎(chǔ)學(xué)習(xí)之函數(shù)重載的簡單介紹
函數(shù)重載是一種特殊情況,C++允許在同一作用域中聲明幾個類似的同名函數(shù),這些同名函數(shù)的形參列表(參數(shù)個數(shù),類型,順序)必須不同,常用來處理實現(xiàn)功能類似數(shù)據(jù)類型不同的問題。這篇文章主要給大家介紹了關(guān)于C++基礎(chǔ)學(xué)習(xí)之函數(shù)重載的相關(guān)資料,需要的朋友可以參考下2019-01-01
C語言操作符進階教程(表達(dá)式求值隱式類型轉(zhuǎn)換方法)
這篇文章主要為大家介紹了C語言操作符進階教程(表達(dá)式求值隱式類型轉(zhuǎn)換方法)2022-02-02
教你如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù)
通過本文教大家如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-01-01
VC++?2019?"const?char*"類型的實參與"LPCTSTR"
這篇文章主要給大家介紹了關(guān)于VC++?2019?"const?char*"類型的實參與"LPCTSTR"類型的形參不兼容的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-03-03
在Visual Studio Code中使用CSSComb格式化CSS文件的教程
這篇文章主要介紹了在Visual Studio Code中使用CSSComb格式化CSS文件,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

