⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.cpp

📁 unix 下的写日志
💻 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 + -