VC简单日志类

此类可以实现大多数应用程序日志功能,可以每天创建一个Log文件,支持中文内容。
LogFile.h头文件
 1 //  LogFile.h: interface for the CLogFile class.
 2 //
 3 ExpandedBlockStart.gifContractedBlock.gif /**/ //
 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
12 class  CLogFile  
13 ExpandedBlockStart.gifContractedBlock.gif {
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 ExpandedBlockStart.gifContractedBlock.gif /**/ //
 4
 5 #include  " stdafx.h "
 6 #include  " KJ83NUpper.h "
 7 #include  " LogFile.h "
 8
 9 #ifdef _DEBUG
10 #undef  THIS_FILE
11 static   char  THIS_FILE[] = __FILE__;
12 #define  new DEBUG_NEW
13 #endif
14
15 ExpandedBlockStart.gifContractedBlock.gif /**/ //
16 //  Construction/Destruction
17 ExpandedBlockStart.gifContractedBlock.gif /**/ //
18
19 CLogFile::CLogFile()
20 ExpandedBlockStart.gifContractedBlock.gif {
21
22}

23
24 CLogFile:: ~ CLogFile()
25 ExpandedBlockStart.gifContractedBlock.gif {
26
27}

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

37 // 获取应用程序所在路径
38 CString CLogFile::GetFilePath()
39 ExpandedBlockStart.gifContractedBlock.gif {   
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
55 BOOL CLogFile::WriteLog(CString LogText)
56 ExpandedBlockStart.gifContractedBlock.gif {
57    try
58ExpandedSubBlockStart.gifContractedSubBlock.gif    {
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))
72ExpandedSubBlockStart.gifContractedSubBlock.gif        {
73            CreateDirectory(m_sFilePath,NULL);
74        }

75        
76        if(!m_SFile.Open(m_sFilePath + "\\" +m_sFileName,CFile::modeReadWrite))
77ExpandedSubBlockStart.gifContractedSubBlock.gif        {
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)
92ExpandedSubBlockStart.gifContractedSubBlock.gif    {
93        return false;
94    }

95
96    return true;
97}

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

转载于:https://www.cnblogs.com/zhangpengshou/archive/2009/07/19/1526500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值