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

📄 log.cpp

📁 顶级实用日志类
💻 CPP
字号:
#include "log.h"ulog::ulog ( char* pprefix ){	m_fpalog = NULL;	m_fpblog = NULL;	m_fpclog = NULL;	if ( pprefix )		strcpy ( mprefix,pprefix );	else		memset ( mprefix,0,sizeof ( mprefix ) );	memset ( mfilea,0,sizeof ( mfilea ) );	memset ( mfileb,0,sizeof ( mfileb ) );	memset ( mfilec,0,sizeof ( mfilec ) );	memset ( mlogdir,0,sizeof ( mlogdir ) );}ulog::~ulog(){	if ( m_fpalog )		fclose ( m_fpalog );	if ( m_fpblog )		fclose ( m_fpblog );	if ( m_fpclog )		fclose ( m_fpclog );}int ulog::createulog(){	struct tm * lt;	time_t tick;	char date[32];	tick = time ( NULL );	lt = localtime ( &tick );	sprintf ( date, "%04d-%02d-%02d",	          lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday );	char filea[FILE_NAME_LEN];	char fileb[FILE_NAME_LEN];	char filec[FILE_NAME_LEN];	if ( strlen ( mprefix ) == 0 )		strcpy ( mprefix,"btbbt" );#ifdef CREATE_ULOG_FILE_C	snprintf ( filec,sizeof ( filec ),"%s%s-%s[NORMAL].log",mlogdir,mprefix,date );	if ( strlen ( mfilec ) ==0 )	{		strcpy ( mfilec,filec );		m_fpclog = fopen ( filec,"w+" );		if ( !m_fpclog )			return -1;	}	else if ( strcmp ( mfilec,filec ) )	{		fclose ( m_fpclog );		strcpy ( mfilec,filec );		m_fpclog = fopen ( filec,"w+" );		if ( !m_fpclog )			return -1;	}#endif#ifdef CREATE_ULOG_FILE_B	snprintf ( fileb,sizeof ( fileb ),"%s%s-%s[ILLEGAL].log",mlogdir,mprefix,date );	if ( strlen ( mfileb ) ==0 )	{		strcpy ( mfileb,fileb );		m_fpblog = fopen ( fileb,"w+" );		if ( !m_fpblog )			return -1;	}	else if ( strcmp ( mfileb,fileb ) )	{		fclose ( m_fpblog );		strcpy ( mfileb,fileb );		m_fpblog = fopen ( fileb,"w+" );		if ( !m_fpblog )			return -1;	}#endif#ifdef CREATE_ULOG_FILE //default	snprintf ( filea,sizeof ( filea ),"%s%s-%s[FATAL].log",mlogdir,mprefix,date );	if ( strlen ( mfilea ) ==0 )	{		strcpy ( mfilea,filea );		m_fpalog = fopen ( filea,"w+" );		if ( !m_fpalog )			return -1;	}	else if ( strcmp ( mfilea,filea ) )	{		fclose ( m_fpalog );		strcpy ( mfilea,filea );		m_fpalog = fopen ( filea,"w+" );		if ( !m_fpalog )			return -1;	}#endif	return 0;}int ulog::addmsg ( const char *pmsg ){	if ( strlen ( mlogdir ) == 0 )		return 0;	struct tm * lt;	time_t tick;	char fdate[32];	tick = time ( NULL );	lt = localtime ( &tick );	sprintf ( fdate, "%04d-%02d-%02d %02d:%02d:%02d",	          lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec );	if ( m_fpalog )	{		fprintf ( m_fpalog, "[%s]:%s\n", fdate,pmsg );		fflush ( m_fpalog );	}	return 0;}int ulog::addmsg ( const char* pmsg,int msglevel ){	if ( strlen ( mlogdir ) == 0 )		return 0;	struct tm * lt;	time_t tick;	char fdate[32];	tick = time ( NULL );	lt = localtime ( &tick );	sprintf ( fdate, "%04d-%02d-%02d %02d:%02d:%02d",	          lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec );	switch ( msglevel )	{		case 0:			if ( m_fpclog )			{				fprintf ( m_fpclog, "[%s]:%s\n", fdate,pmsg );				fflush ( m_fpalog );			}			break;		case 1:			if ( m_fpblog )			{				fprintf ( m_fpblog, "[%s]:%s\n", fdate,pmsg );				fflush ( m_fpalog );			}			break;		default:			if ( m_fpalog )			{				fprintf ( m_fpalog, "[%s]:%s\n", fdate,pmsg );				fflush ( m_fpalog );			}	}	return 0;}int ulog::setulogdir ( char *plogdir ){	if ( access ( plogdir,W_OK ) <0 )	{		if ( mkdir ( plogdir,0744 ) <0 )			return -1;	}	strcpy ( mlogdir,plogdir );	if ( mlogdir[strlen ( mlogdir )-1]!='/' )		strcat ( mlogdir,"/" );	return 0;}int ulog::lock(){	if ( pthread_mutex_lock ( &_mutex ) != 0 )		return -1;}int ulog::unlock(){	if ( pthread_mutex_unlock ( &_mutex ) != 0 )		return -1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -