📄 debuglog.h
字号:
//DebugLog.h
#ifndef _DEBUG_LOG_FILE_H_
#define _DEBUG_LOG_FILE_H_
#include <fcntl.h>
#include <sys/stat.h>
#include <io.h>
#define LOG_CAPTION "LOGFILENAME" ///配置文件主关键字
#define LOG_FIELD "HMComm" ////配置文件次关键字 ---- 此值存日志文件名称。
#define LOG_CFG_FILENAME "..\\conf\\Config.ini" ///日志文件配置文件
#define LOGSIZE 1024*1024 ///日志文件大小。
#define DEBUG_FLAG "DEBUG_LOG_FLAG" ///配置文件主关键字
#define DBGLOG_FLAG "DEGLOG" /// 配置文件次关键字 ---此值存是否开启日志功能。1--关, 0--开。
/////eg. WriteParseLog(__FILE__,__LINE__,"%s","发送前槽没卡消息!!");
#define LOGSIZE1 10240*10240 ///日志文件大小。
int WriteParseLog(char *FileName, int Line, char *fmt, ...)
{
int mDebug;
mDebug = GetPrivateProfileInt(DEBUG_FLAG, DBGLOG_FLAG, 0, LOG_CFG_FILENAME);
if(mDebug!=0)
return 0;
int n, fd;
char buffer[5120],strTemp[600];
va_list ap;
struct stat sbuf;
CTime tCurr;
char chCurr[20];
char buf[5120];
memset(&buffer,0x00,sizeof(buffer));
memset(&strTemp,0x00,sizeof(strTemp));
char cFileName[200];
memset(&cFileName,0x00,sizeof(cFileName));
GetPrivateProfileString(LOG_CAPTION, LOG_FIELD, "", cFileName, 50, LOG_CFG_FILENAME);
memset(buf,0x00,sizeof(buf));
va_start(ap, fmt);
n = vsprintf(buffer, fmt, ap);
memcpy(buf,buffer,sizeof(buffer));
va_end(ap);
stat(cFileName, &sbuf);
if(sbuf.st_size>LOGSIZE)
{
fd = open(cFileName, O_CREAT | O_RDWR | O_TRUNC , 0600);
}
else
{
fd = open(cFileName, O_CREAT | O_RDWR, 0600);
}
if (fd < 0)
{
return -1;
}
lseek(fd,0,SEEK_END);
tCurr = CTime::GetCurrentTime();
memset(chCurr, 0x00, sizeof(chCurr));
sprintf(chCurr, "%02d-%02d %02d:%02d:%02d",
tCurr.GetMonth(), tCurr.GetDay(), tCurr.GetHour(),tCurr.GetMinute(),tCurr.GetSecond());
sprintf(strTemp," \n%s %-6d %s ", chCurr,Line,FileName);
write(fd,strTemp,strlen(strTemp));
write(fd, buf, strlen(buf));
close(fd);
return 0;
}
int WriteParsecLog(char *FileName, int Line, char *fmt, ...)
{
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -