📄 loghelper.cpp
字号:
#include "LogHelper.h"
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
CLogHelper theLogger;
CLogHelper::CLogHelper()
{
InitLock(&m_logLock);
memset(m_szFile, 0, FILE_NAME_LEN);
m_lBufferedSize = 0;
}
CLogHelper::~CLogHelper()
{
Flush();
}
bool CLogHelper::SetLogFile(const char *szName)
{
if(!szName || (strlen(szName) == 0))
{
return false;
}else
{
LockOn(&m_logLock);
memset(m_szFile, 0, FILE_NAME_LEN);
sprintf(m_szFile, "%s", szName);
LockOff(&m_logLock);
return true;
}
}
int CLogHelper::Flush()
{
if(strlen(m_szFile) > 0)
{
LockOn(&m_logLock);
int nRet = m_strBuff.size();
if(nRet <= 0)
{
LockOff(&m_logLock);
return 0;
}
m_stream.open(m_szFile, ios::app|ios::out);
while(!m_strBuff.empty())
{
m_stream << m_strBuff.front() << endl;
m_strBuff.pop();
}
m_stream.close();
LockOff(&m_logLock);
m_lBufferedSize = 0;
return nRet;
}
return 0;
}
void CLogHelper::LogMessage(string &strLog, const bool bFlag)
{
char szTime[30];
time_t tm;
time(&tm);
sprintf(szTime, "[%s", ctime(&tm));
szTime[strlen(szTime) - 1] = ']';
strcat(szTime, ": ");
string strContent = string(szTime) + strLog;
LockOn(&m_logLock);
m_strBuff.push(strContent);
m_lBufferedSize += strContent.size();
LockOff(&m_logLock);
if(bFlag)
{
strLog += "\n";
ThreadSafePrint(strLog.c_str());
Flush();
}
if(m_strBuff.size() >= 1000)
{
Flush();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -