📄 log.cpp
字号:
#include "log.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
void CLogFile::ShowInfo(char* buffer)
{
cout<<buffer<<endl;
}
static bool m_bWriteLog=true;
bool CLogFile::IsWriteLog()
{
return m_bWriteLog;
}
void CLogFile::StartWriteLog()
{
m_bWriteLog=true;
}
void CLogFile::StopWriteLog()
{
m_bWriteLog=false;
}
void CLogFile::WriteInfoLog(bool bShow,const char* fmt, ... )
{
if(!bOpen)
{
bOpen=true;
SetPath("../log","engine.log");
}
char buffer[4096];
va_list args;
va_start(args, fmt);
vsprintf(buffer, fmt, args);
va_end(args);
m_bWriteLog = bShow;
if(m_bWriteLog)
WriteLog(buffer);
ShowInfo(buffer);
}
void CLogFile::WriteErrorLog(bool bShow,const char* fmt, ... )
{
if(!bOpen)
{
bOpen=true;
SetPath("../log","engineerror.log");
}
//m_mutex.Lock();
char buffer[4096];
va_list args;
va_start(args, fmt);
vsprintf(buffer, fmt, args);
va_end(args);
m_bWriteLog = bShow;
if(m_bWriteLog)
WriteLog(buffer);
ShowInfo(buffer);
}
CLogFile::CLogFile()
{
m_pLogFile=NULL;
m_nFileSize=0;
bOpen = false;
}
CLogFile::~CLogFile()
{
if(m_pLogFile)
{
fclose(m_pLogFile);
m_pLogFile = NULL;
}
}
void CLogFile::SetPath(const char* szPath,char* fileName)
{
char path[1024];
if(*szPath !=0)
{
cout<<"创建目录"<<szPath<<endl;
sprintf(path,"mkdir %s",szPath);
system(path);
sprintf(m_szFilePath,"%s/%s",szPath,fileName);
}
else
{
sprintf(m_szFilePath,"./%s",fileName);
}
cout<<"创建文件:"<<m_szFilePath<<endl;
m_pLogFile = fopen(m_szFilePath,"w");
m_nFileSize += fprintf(m_pLogFile,"\n\n==================START RUN=======================\n\n");
}
void CLogFile::WriteLog(const char *pBuffer)
{
if(m_pLogFile == NULL)
return;
time_t atimer;
atimer = time( NULL );
struct tm *area = localtime( &atimer );
m_nFileSize += fprintf(m_pLogFile,"[%04d-%02d-%02d %02d:%02d:%02d] :%s\n",area->tm_year+1900,area->tm_mon+1,area->tm_mday,area->tm_hour,area->tm_min,area->tm_sec,pBuffer);
if(m_nFileSize > 4096000)
{
fclose(m_pLogFile);
char desFile[256];
sprintf(desFile,"%s_%04d%02d%02d-%02d:%02d:%02d",m_szFilePath,area->tm_year+1900,area->tm_mon+1,area->tm_mday,area->tm_hour,area->tm_min,area->tm_sec);
rename(m_szFilePath,desFile);
m_pLogFile = fopen(m_szFilePath,"w");
m_nFileSize =0;
}
else
{
fflush(m_pLogFile);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -