简单的日志管理

来源:互联网 发布:古代皇帝 知乎 编辑:程序博客网 时间:2024/06/11 09:45

在做简单的本地测试程序代码时候,要向程序目录中增加日志管理功能,所以写了一个日志管理类;

.h文件:

#include <direct.h>
#include <afx.h>
#include <atltime.h>
#include <stdio.h>
// CLog


class CLog : public CWnd
{
DECLARE_DYNAMIC(CLog)


public:
    CLog();
// CLog(CStdioFile *m_file);
virtual ~CLog();


public:


void addLog(CString str);
private:
CStdioFile m_file;
//CTime time;


    CRITICAL_SECTION m_crit;
protected:
DECLARE_MESSAGE_MAP()
};

,cpp文件:

CLog::CLog()
{
//m_file.Open("C:\\Documents and Settings\\Administrator\\Obj\\log.txt",CFile::modeWrite);
//if(!m_file)
//{
// m_file.Open("C:\\Documents and Settings\\Administrator\\Obj\\log.txt",CFile::modeCreate|CFile::modeWrite);
//
//}
::InitializeCriticalSection(&m_crit);
}




CLog::~CLog()
{


//m_file.Close();
DeleteCriticalSection(&m_crit);
}


void CLog::addLog(CString str)         //addlog()向日志里面写信息
{
//进入临界区(写文件)
::EnterCriticalSection(&m_crit);
//CString szFile;
//char pathbuf[260];
//int pathlen=::GetModuleFileNameA(NULL,pathbuf,260);
    //szFile=fname+"\\log.txt";
   CString strPath;
   ::GetModuleFileName(NULL,strPath.GetBuffer(MAX_PATH),MAX_PATH);
   strPath.ReleaseBuffer();
   strPath=strPath.Left(strPath.ReverseFind(_T('\\')));
   CString szFile;
   szFile=strPath+"\\log.txt";
 // MessageBox(szFile,"路径",MB_OK);

 
   m_file.Open(szFile,CStdioFile::modeReadWrite|CStdioFile::modeCreate|CStdioFile::modeNoTruncate);


m_file.SeekToEnd();
CTime time= CTime::GetCurrentTime();


  CString m_strTime=time.Format("%Y-%m-%d %H:%M:%S");


m_file.WriteString(m_strTime);
m_file.WriteString(str);
CString str1;
str1.Format("\r\n");
m_file.WriteString(str1);


m_file.Close();
::LeaveCriticalSection(&m_crit);
   //退出临界区
}

原创粉丝点击