zoukankan      html  css  js  c++  java
  • c++封装日志类

    知识点

    1、控制台彩色输出

    2、枚举

    3、文本文件读写

    4、获取当前时间及其格式化

    5、定时器

    封装日志类代码

    #pragma once
    #include <stdio.h>
    #include "stdafx.h"
    #include <afxinet.h>
    #include <time.h>
    enum COLOR
    {
    DARKBLUE = 1,
    DARKGREEN,
    DARKTEAL,
    DARKRED,
    DARKPINK,
    DARKYELLOW,
    GRAY,
    DARKGRAY,
    BLUE,
    GREEN,
    TEAL,
    RED,
    PINK,
    YELLOW,
    WHITE
    };
    static void ColorPrintf(const char szText[],COLOR color)
    {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);
    printf(szText);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),WHITE);
    }

    char szLogText[1024]="####################################################################################################\n## 歡迎使用<<砍柴人>>日誌係統! ##\n## ————作者:砍柴人 ##\n## ————日期:壬辰年壬寅月辛亥日 ##\n####################################################################################################\n";
    class LogEvent
    {
    public:
    FILE *fp;
    LogEvent()
    {
    char szLogPath[MAX_PATH]={0};
    char szTemp[MAX_PATH]={0};
    char *szpPath;
    GetModuleFileNameA(NULL,szTemp,sizeof(szTemp)-1);
    szpPath=strrchr(szTemp,'.');
    strncpy(szLogPath,szTemp,strlen(szTemp)-sizeof(szpPath));
    strcat(szLogPath,".log");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BLUE);
    fp=fopen(szLogPath,"w");
    if (fp!=NULL)
    {
    fputs(szLogText,fp);
    time_t currenttime;
    struct tm* timeinfo;
    time(&currenttime);
    timeinfo=localtime(&currenttime);
    printf("Pragram runing time:%s\n",asctime(timeinfo));
    fprintf(fp,"\n\t\tPragram runing time:%s\n",asctime(timeinfo));
    fputs("####################################################################################################\n",fp);
    }
    else
    {
    delete fp;
    }
    }
    void CPrintf(const char szText[],COLOR color)
    {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);
    time_t currenttime;
    struct tm* timeinfo;
    time(&currenttime);
    timeinfo=localtime(&currenttime);
    fprintf(fp,"Event:%s,Time:%s\n",szText,asctime(timeinfo));
    printf("Event:%s,Time:%s\n",szText,asctime(timeinfo));
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),WHITE);
    }
    void Release()
    {
    fclose(fp);
    delete fp;
    }
    };
  • 相关阅读:
    [转]Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
    [转]23种设计模式与泡MM的关系
    [转]23种设计模式之间的关系
    [转]如何提高服务器的访问速度
    SVN所在的服务器IP改变了,肿么办
    HTML中ID与NAME的区别
    Java与.net异构平台上web service间复杂对象的互操作
    下一代OS系统展望之我见(针对windows,其他OS我不熟)
    使用axis开发java web service
    关于Java与DotNet异构平台WebService中enum对象的交互
  • 原文地址:https://www.cnblogs.com/shya/p/2361194.html
Copyright © 2011-2022 走看看