国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Log4Cpp 使用實(shí)例

2019-11-08 01:46:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Log4Cpp 的概念及簡(jiǎn)介自行百度,網(wǎng)絡(luò)上已經(jīng)很齊全了。

下載編譯呼,得到了log4cpp.dll 和 log4cpp.lib 以及 include 頭文件等內(nèi)容。

封裝了個(gè)Log4Cpp的使用類,輸出的效果如下:

[2017-02-20 16:09:51.910](NOTICE)Sys : 進(jìn)入了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:09:51.911](NOTICE)Sys : 寫入系統(tǒng)日志[2017-02-20 16:09:51.911](NOTICE)Sys : 退出了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:10:46.190](NOTICE)Sys : 進(jìn)入了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:10:46.191](NOTICE)Sys : 寫入系統(tǒng)日志[2017-02-20 16:10:46.191](DEBUG)Sys : 寫入系統(tǒng)日志-debug 級(jí)別[2017-02-20 16:10:46.193](NOTICE)Sys : 退出了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:10:47.047](DEBUG)Sys : 進(jìn)入了CPfy_log4cppDlg::OnBnClickedButton2函數(shù)[2017-02-20 16:10:47.885](DEBUG)Sys : 退出了CPfy_log4cppDlg::OnBnClickedButton2函數(shù)[2017-02-20 16:11:48.813](NOTICE)Sys : 進(jìn)入了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:11:48.814](NOTICE)Sys : 寫入系統(tǒng)日志[2017-02-20 16:11:48.814](DEBUG)Sys : 寫入系統(tǒng)日志-debug 級(jí)別[2017-02-20 16:11:48.814](NOTICE)Sys : 退出了CPfy_log4cppDlg::OnBnClickedButton1函數(shù)[2017-02-20 16:11:49.733](DEBUG)Sys : 進(jìn)入了CPfy_log4cppDlg::OnBnClickedButton2函數(shù)[2017-02-20 16:11:50.571](DEBUG)Sys : 退出了CPfy_log4cppDlg::OnBnClickedButton2函數(shù)

文末會(huì)放上源碼工程,這里介紹下主要的功能函數(shù)

1.類初始化

在使用項(xiàng)目的stdafx.h 中包含封裝類頭文件  
#include "Log4CppPfy.h" 然后在 InitInstance() 中加入 
CLog4CppPfy::InitInstance();初始化函數(shù)如下

void CLog4CppPfy::InitInstance(){	//log日志文件路徑	const string strPath = "D://My Documents//Pfy_Log";	//樣式 	const string strPattern = "[%d{%Y-%m-%d %H:%M:%S.%l}](%p)%c %x: %m%n";	//級(jí)別,文檔最大容量,文檔最大數(shù)量	LogConf logConf = getConf();	//設(shè)置各個(gè)類型的log樣式級(jí)別	//系統(tǒng)	setLogIni(m_logSys, strPath, "log_sys.log", NAME_LOG_SYS, strPattern, logConf);	//URL	setLogIni(m_logUrl, strPath, "log_url.log", NAME_LOG_URL, strPattern, logConf);	//SQL	setLogIni(m_logSql, strPath, "log_sql.log", NAME_LOG_SQL, strPattern, logConf);}

其中m_logSys 就是log4cpp::Category,我這定了的是全局變量

log4cpp::Category &CLog4CppPfy::m_logSys = log4cpp::Category::getInstance(NAME_LOG_SYS);log4cpp::Category &CLog4CppPfy::m_logUrl = log4cpp::Category::getInstance(NAME_LOG_URL);log4cpp::Category &CLog4CppPfy::m_logSql = log4cpp::Category::getInstance(NAME_LOG_SQL);

setLogIni函數(shù)如下:

void CLog4CppPfy::setLogIni( log4cpp::Category &category, 							const string& strPath, 							const string& strFile, 							const string& strAppenderName, 							const string& strPattern, 							const LogConf& logConf ){	string strAbsPath = strPath + "//" + strFile;	log4cpp::Appender *appender = new log4cpp::RollingFileAppender(strAppenderName, strAbsPath, /		logConf.maxFileSize*1024*1024, logConf.maxBackupIndex);//創(chuàng)建輸出目標(biāo)文件	log4cpp::PatternLayout *layout = new log4cpp::PatternLayout();	layout->setConversionPattern(strPattern);	appender->setLayout(layout);//設(shè)置樣式	category.setAdditivity(false);	category.setAppender(appender);//設(shè)置創(chuàng)建好的輸出源	category.setPRiority(logConf.priority);//設(shè)置優(yōu)先級(jí)}

2.輸出日志

初始化了完了,下面就是使用的時(shí)候直接輸出日志了,log4cpp可以設(shè)置很多個(gè)輸出級(jí)別,這里只是定義了2個(gè):notice 和 debug 

封裝好的notice函數(shù)如下:

void CLog4CppPfy::notice( LogType eType, const char* stringFormat, ... ){	va_list va;	va_start(va, stringFormat);	switch(eType)	{	case LOG_SYS:		{			m_logSys.logva(log4cpp::Priority::NOTICE, stringFormat, va);		}		break;	case LOG_URL:		{			m_logUrl.logva(log4cpp::Priority::NOTICE, stringFormat, va);		}		break;	case LOG_SQL:		{			m_logSql.logva(log4cpp::Priority::NOTICE, stringFormat, va);		}		break;	default:		break;	}   //eType	va_end(va);}

使用的話就是

	CLog4CppPfy::notice(CLog4CppPfy::LOG_SYS,"寫入系統(tǒng)日志");	CLog4CppPfy::debug(CLog4CppPfy::LOG_SYS,"寫入系統(tǒng)日志-debug 級(jí)別");	CLog4CppPfy::notice(CLog4CppPfy::LOG_URL,"寫入網(wǎng)絡(luò)日志");	CLog4CppPfy::debug(CLog4CppPfy::LOG_URL,"寫入網(wǎng)絡(luò)日志-debug 級(jí)別");	CLog4CppPfy::notice(CLog4CppPfy::LOG_SQL,"寫入數(shù)據(jù)庫(kù)操作日志");	CLog4CppPfy::debug(CLog4CppPfy::LOG_SQL,"寫入數(shù)據(jù)庫(kù)操作日志-debug 級(jí)別");

3.源碼下載

點(diǎn)擊下載


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 胶南市| 缙云县| 桂阳县| 舞钢市| 永春县| 漳浦县| 永春县| 永清县| 呼图壁县| 察哈| 囊谦县| 上饶县| 海原县| 潞西市| 霍林郭勒市| 石阡县| 乐亭县| 葵青区| 苏尼特右旗| 牙克石市| 全州县| 湄潭县| 柳江县| 和平县| 襄城县| 盐城市| 鲁甸县| 高邑县| 金昌市| 莆田市| 东丽区| 珠海市| 调兵山市| 黄大仙区| 靖州| 元谋县| 周至县| 兴文县| 巴塘县| 通道| 灵宝市|