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

📄 debuglog.h

📁 一个与银行通讯的测试程序
💻 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 + -