• 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错误,文件打开失败!");
    点此下载源码
  • 相关阅读:
    Canvas入门
    20220424 08:00:01
    20220417 08:00:03
    20220422 08:00:01
    LoadRunner性能测试
    中国软件杯打卡——图片放大与缩小功能
    中国软件杯打卡
    sqlserver Navicat可连接,但使用java代码连接就报错(通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败)
    java学习数组Arrays工具类
    java学习静态static关键字
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/1526500.html
Copyright © 2020-2023  润新知