📄 log.cpp
字号:
// Log.cpp: implementation of the CLog class.
//
//////////////////////////////////////////////////////////////////////
#include "Log.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLog::CLog(char* strPrefix)
{
m_fpLog = NULL;
if(strPrefix)strcpy(m_strPrefix,strPrefix);
else memset(m_strPrefix,0,sizeof(m_strPrefix));
memset(m_strFile,0,sizeof(m_strFile));
memset(m_LogDir,0,sizeof(m_LogDir));
}
CLog::~CLog()
{
/*关闭文件*/
fclose(m_fpLog);
}
int CLog::fnWriteLog(char *strLogMsg)
{
/* 如果没有指定目录,则默认为./log/*/
if(strlen(m_LogDir)==0)
{
strcpy(m_LogDir,"./log/");
if(access(m_LogDir,W_OK)<0)
{
if(mkdir(m_LogDir,0744)<0)return -1;
}
}
/*得到系统时间*/
time_t ctime;
tm *ptm;
time(&ctime);
ptm = localtime( &ctime );
char strTime[50];
char strYear[5], strMonth[3], strDay[3],strDate[9];
strftime( strYear, 5, "%Y", ptm );
strftime( strMonth, 3, "%m", ptm );
strftime( strDay, 3, "%d", ptm );
sprintf(strDate, "%s%s%s", strYear, strMonth, strDay);
/*形成文件名*/
char strFile[FILE_NAME_LEN];
snprintf(strFile,sizeof(strFile),"%s%s%s.log",m_LogDir,m_strPrefix,strDate);
/*比较文件名*/
if(strlen(m_strFile)==0)
{
strcpy(m_strFile,strFile);
m_fpLog=fopen(strFile,"a");
if(!m_fpLog)return -1;
}
else if(strcmp(m_strFile,strFile))//不相同
{
fclose(m_fpLog);
strcpy(m_strFile,strFile);
m_fpLog=fopen(strFile,"a");
if(!m_fpLog)return -1;
}
/*将日期写入文件名*/
strftime( strTime, 50, "%X", ptm );
fprintf( m_fpLog, "[%s]\n", strTime );
/*写入文件*/
fprintf( m_fpLog, "%s\n", strLogMsg );
fflush( m_fpLog );
// printf("log written : %s\n", strLogMsg);
return 0;
}
int CLog::fnSetLogDir(char *strLogDir)
{
if(access(strLogDir,W_OK)<0)
{
if(mkdir(strLogDir,0744)<0)return -1;
}
strcpy(m_LogDir,strLogDir);
if(m_LogDir[strlen(m_LogDir)-1]!='/')
strcat(m_LogDir,"/");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -