VC简单日志类

此类可以实现大多数应用程序日志功能,可以每天创建一个Log文件,支持中文内容。
LogFile.h头文件
 1// LogFile.h: interface for the CLogFile class.
 2//
 3//////////////////////////////////////////////////////////////////////
 4
 5#if !defined(AFX_LOGFILE_H__288388CA_9A3E_4F3D_A2B8_F1078E1F6A6B__INCLUDED_)
 6#define AFX_LOGFILE_H__288388CA_9A3E_4F3D_A2B8_F1078E1F6A6B__INCLUDED_
 7
 8#if _MSC_VER > 1000
 9#pragma once
10#endif // _MSC_VER > 1000
11
12class CLogFile  
13{
14public:
15    CLogFile();
16    virtual ~CLogFile();
17    static CString GetFileName();
18    static CString GetFilePath();
19    static BOOL WriteLog(CString LogText);
20}
;
21
22#endif // !defined(AFX_LOGFILE_H__288388CA_9A3E_4F3D_A2B8_F1078E1F6A6B__INCLUDED_)
23
LogFile.cpp文件
 1// LogFile.cpp: implementation of the CLogFile class.
 2//
 3//////////////////////////////////////////////////////////////////////
 4
 5#include "stdafx.h"
 6#include "KJ83NUpper.h"
 7#include "LogFile.h"
 8
 9#ifdef _DEBUG
10#undef THIS_FILE
11static char THIS_FILE[]=__FILE__;
12#define new DEBUG_NEW
13#endif
14
15//////////////////////////////////////////////////////////////////////
16// Construction/Destruction
17//////////////////////////////////////////////////////////////////////
18
19CLogFile::CLogFile()
20{
21
22}

23
24CLogFile::~CLogFile()
25{
26
27}

28//获取文件名称
29CString CLogFile::GetFileName()
30{
31    CString m_sFileName;
32
33    m_sFileName = CTime::GetCurrentTime().Format("%Y-%m-%d"+ ".log";
34    
35    return m_sFileName;
36}

37//获取应用程序所在路径
38CString CLogFile::GetFilePath()
39{   
40    CString m_FilePath;
41
42    GetModuleFileName(NULL,m_FilePath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
43
44    m_FilePath.ReleaseBuffer();
45
46    int m_iPosIndex;
47
48    m_iPosIndex = m_FilePath.ReverseFind('\\'); 
49
50    m_FilePath = m_FilePath.Left(m_iPosIndex) + "\\Log";
51
52    return m_FilePath;
53}

54
55BOOL CLogFile::WriteLog(CString LogText)
56{
57    try
58    {
59        CFile m_File;
60        CStdioFile m_SFile;
61        CFileFind m_FileFind;
62        CString m_sErrorMessage;
63        CString m_sFileName = GetFileName();
64        CString m_sFilePath = GetFilePath();
65        CString m_sCurrentTime = CTime::GetCurrentTime().Format("%Y-%m-%d %X");
66        
67        m_sErrorMessage = "*******************" + m_sCurrentTime + "*******************" + "\r";
68        m_sErrorMessage += LogText + "\r";
69        m_sErrorMessage += "*******************" + m_sCurrentTime + "*******************" + "\r";
70
71        if(!m_FileFind.FindFile(m_sFilePath))
72        {
73            CreateDirectory(m_sFilePath,NULL);
74        }

75        
76        if(!m_SFile.Open(m_sFilePath + "\\" +m_sFileName,CFile::modeReadWrite))
77        {
78            m_SFile.Open(m_sFilePath + "\\" + m_sFileName,CFile::modeCreate | CFile::modeReadWrite | CFile::typeText);
79        }

80        
81        m_SFile.SeekToEnd(); 
82
83        char* m_szMessage;
84
85        m_szMessage=(LPTSTR)(LPCTSTR)m_sErrorMessage;
86
87        m_SFile.Write(m_szMessage,lstrlen(m_szMessage));   
88
89        m_SFile.Close();
90    }

91    catch(CFileException fileException)
92    {
93        return false;
94    }

95
96    return true;
97}

调用方法说明:
首先在要调用的页面加入引用
#include "LogFile.h"
然后,写入下列代码可以正常调用
CLogFile::WriteLog("IO错误,文件打开失败!");
点此下载源码
原文地址:https://www.cnblogs.com/zhangpengshou/p/1526500.html