基于VS的C++日志文件模板

头文件Log.h

#pragma once

#define LOG_MAXCOUNT    10
#define LOG_LEVEL_INFO    0
#define LOG_LEVEL_DEBUG    1
#define LOG_LEVEL_ERROR    2

typedef struct LogInfo_T
{
    public:
        char AppName[255];
        char LogFilePath[255];
        CStringList * DebugStringList;
        CStringList * ErrorStringList;
        __int64 LastLogPos;    //日志文件的最后读取位置

    ~LogInfo_T()
    {
        DebugStringList->RemoveAll();
        ErrorStringList->RemoveAll();
        delete DebugStringList;
        delete ErrorStringList;
    }
}LogInfi;


void SetLogLevel(int level);

//设置日志文件路径
void SetLogFilePath(const char * Path);

//写入日志文件
void WriteLog(const char * LogInfo, int LogLevel);

源文件Log.cpp

#include "StdAfx.h"
#include "commom.h"

char LogFilePath[255];
int LogLevelLimit = 2;

void SetLogFilePath(const char * path)
{
    strcpy(LogFilePath, path);
}

void SetLogLevel(int level)
{
    LogLevelLimit = level;
}

//LogInfo日志信息;LogLevel为日志级别,分为三级0 info, 1 Debug, 2 错误
void WriteLog(const char * info, int LogLevel)
{
    if(info == NULL || strlen(info) == 0)
        return;
    if(LogLevel > LogLevelLimit)
        return;
    
    //获取当前时间
    SYSTEMTIME tSystime;
    GetLocalTime(&tSystime);
    FILE * logf = fopen(LogFilePath, "a+");
    if(logf == NULL)
        return;
    fprintf(logf, "%04d-%o2d-%02d %02d:%02d:%02d", tSystime.wYear, tSystem.wMonth, ...);

    if(LogLevel == 0)
        fprintf(logf, "info");
    else if(logLevel == 1)
        fprintf(logf, "Debug");
    else if(logLevel == 2)
        fprintf(logf, "Error");

    fprintf(logf, "%s\n", info);
    fclose(logf);
}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值