📄 logfile.cpp
字号:
// LogFile.cpp: implementation of the CLogFile class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "LogFile.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLogFile::CLogFile()
{
//默认的自动建立
m_sLogFileName="logfile.log";
}
CLogFile::CLogFile(LPCTSTR sLogFileName)
{
FILE *flog;
if((flog=fopen(sLogFileName,"a+"))==NULL)
{
if((flog=fopen(sLogFileName,"wt"))==NULL)
{
AfxMessageBox("不能建立指定的日志文件!");
return;
}
}
fclose(flog);
m_sLogFileName=sLogFileName;
}
CLogFile::~CLogFile()
{
m_sLogFileName="";
}
BOOL CLogFile::SetPathFile(LPCTSTR sLogFileName)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(sLogFileName,"a+"))==NULL)
{
if((flog=fopen(sLogFileName,"wt"))==NULL)
{
//AfxMessageBox("不能建立指定的日志文件!");
return FALSE;
}
}
fclose(flog);
m_sLogFileName=sLogFileName;
return TRUE;
}
void CLogFile::OutPut(LPCTSTR data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%s ",data);
}
}
else
fprintf(flog,"%s ",data);
fclose(flog);
}
void CLogFile::OutPut(double data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%lf ",data);
}
}
else
fprintf(flog,"%lf ",data);
fclose(flog);
}
void CLogFile::OutPut(long data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%ld ",data);
}
}
else
fprintf(flog,"%ld ",data);
fclose(flog);
}
void CLogFile::OutPut(int data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%d ",data);
}
}
else
fprintf(flog,"%d ",data);
fclose(flog);
}
void CLogFile::OutPut(float data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%f ",data);
}
}
else
fprintf(flog,"%f ",data);
fclose(flog);
}
void CLogFile::ClearLogFile()
{
FILE *flog;
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
fclose(flog);
}
void CLogFile::CopyTo(LPCTSTR sNewFile)
{
CopyFile(m_sLogFileName,sNewFile,FALSE);
}
void CLogFile::OutPutCurTime()
{
COleDateTime dt=COleDateTime::GetCurrentTime();
CString str=dt.Format("%Y.%m.%d %H:%M:%S");
OutPutLine(str);
}
void CLogFile::OutPutLine(LPCTSTR data)
{
//先按照添加模式使用
FILE *flog;
if((flog=fopen(m_sLogFileName,"a+"))==NULL)
{
if((flog=fopen(m_sLogFileName,"wt"))!=NULL)
{
fprintf(flog,"%s\n",data);
}
}
else
fprintf(flog,"%s\n",data);
fclose(flog);
}
CString CLogFile::GetPathFile()
{
return m_sLogFileName;
}
void CLogFile::OutPutSplitLine(char cSymbol, int nRepeat)
{
//输出分隔符号
CString str(cSymbol,nRepeat);
OutPutLine(str);
}
void CLogFile::AppendTo(CString sDataBase)
{
//不能使用FILE,可能会因为空格截断
CString str;
CStdioFile fin,fout;
if(!fout.Open(sDataBase,CStdioFile::modeNoTruncate|CStdioFile::modeWrite|CStdioFile::modeCreate))
return;
fout.SeekToEnd();
if(!fin.Open(m_sLogFileName,CStdioFile::modeRead))
{
fout.Close();
return;
}
while(1)
{
if(!fin.ReadString(str))
break;
str+="\n";
fout.WriteString(str);
}
fin.Close();
fout.Close();
//默认清除
ClearLogFile();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -