資源簡介
C++自己實現日志庫,包括XML文件解析,日志信息分級,多種方式存儲

代碼片段和文件信息
#include?
#include?“logout.h“
LogOut::LogOut()
{
????m_path.clear();
????m_logxml?=?new?Logxml;
}
void?LogOut::logOut(string?line?string?msg?LogLevel?level)
{
????if(“true“?==?m_logxml->getTextSwitch())
????{
????????writeLog(linemsglevel);
????}
????if(“true“?==?m_logxml->getConSwitch())
????{
????????printLog(linemsglevel);
????}
????if(“true“?==?m_logxml->getDBSwitch())
????{
????????saveLog(linemsglevel);
????}
}
string?LogOut::getCurrentTime()
{
????struct?tm?*local;?//定義tm結構指針存儲時間信息
????time_t?now;??//聲明time_t類型變量
????timeb?tb;
????ftime(&tb);?//微秒
????now=time(NULL);//獲取當前系統的日歷時間
????local=localtime(&now);//localtime()函數是將日歷時間轉化為本地時間
????char?temp[50]?=?{0};
????sprintf(temp“[%d-%d-%d?%d:%d:%d:%3d]“local->tm_year?+?1900local->tm_mon?+?1local->tm_mday
????????????local->tm_hourlocal->tm_minlocal->tm_sectb.millitm);
????string?timeNow?=?temp;
????return?timeNow;
}
void?LogOut::printLog(string?line?string?msg?LogLevel?level)
{
????switch(level)
????{
????case?DEBUG:
????????cout<DEBUG“< ????????break;
????case?INFO:
????????cout<INFO“< ????????break;
????case?WARN:
????????cout<WARN“< ????????break;
????case?ERRO:
????????cout<ERRO“< ????????break;
????case?FATAL:
????????cout<FATAL“< ????????break;
????default:
????????break;
????}
}
void?LogOut::writeLog(string?line?string?msg?LogLevel?level)
{
????string?fileName?=?m_logxml->getPath();
????ofstream?outfile(fileName.c_str()ios::app);//將fileName轉化為c型字符串作為文件名
????if(!outfile)
????{
????????cout<<“Log.txt?can‘t?open.“< ????????return;
????}
????else
????{
????????switch(level)
????????{
????????case?DEBUG:
????????????if(m_logxml->getLevel()>=“5“)
????????????{
????????????????outfile<DEBUG“< ????????????}
????????????break;
????????case?INFO:
????????????if(m_logxml->getLevel()>=“4“)
????????????{
????????????????outfile<INFO“< ????????????}
????????????break;
????????case?WARN:
????????????if(m_logxml->getLevel()>=“3“)
????????????{
????????????????outfile<WARN“< ????????????}
????????????break;
????????case?ERRO:
????????????if(m_logxml->getLevel()>=“2“)
????????????{
????????????????outfile<ERRO“< ????????????}
????????????break;
????????case?FATAL:
????????????if(m_logxml->getLevel()>=“1“)
????????????{
??????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-11?13:54??LogLib\
?????文件?????????220??2018-03-21?16:30??LogLib\LogLib.pro
?????文件?????????193??2018-03-23?15:54??LogLib\config.xm
?????文件????????3479??2018-05-11?13:53??LogLib\logout.cpp
?????文件????????1367??2018-03-23?17:56??LogLib\logout.h
?????文件????????1071??2018-05-11?13:53??LogLib\logxm
?????文件?????????780??2018-03-23?15:48??LogLib\logxm
?????文件?????????235??2018-03-22?08:44??LogLib\main.cpp
?????文件???????72979??2018-02-25?09:38??LogLib\tinyxm
?????文件???????70123??2018-02-25?09:38??LogLib\tinyxm
- 上一篇:神經網絡實現異或
- 下一篇:文件加密基于赫夫曼編碼的簡單程序
評論
共有 條評論