C++语言编写写日志类语言编写写日志类
使用C++语言编写写日志类,支持写日志级别设置、支持多线程、支持可变形参表写日志。
主要提供以下接口:
1、设置写日志的级别
2、写关键日志信息
3、写错误日志信息
4、写警告日志信息
5、写一般日志信息
#ifndef COMMAND_DEFINE_H
#define COMMAND_DEFINE_H
//日志级别的提示信息
static const char * KEYINFOPREFIX = " Key: ";
static const char * ERRORPREFIX = " Error: ";
static const char * WARNINGPREFIX = " Warning: ";
static const char * INFOPREFIX = " Info: \n";
static const int MAX_STR_LEN = 1024;
//日志级别枚举
typedef enum EnumLogLevel
{
LogLevelAll = 0, //所有信息都写日志
LogLevelMid, //写错误、警告信息
LogLevelNormal, //只写错误信息
LogLevelStop //不写日志
};
#endif
#ifndef LOGGER_H_
#define LOGGER_H_
#include <Windows.h>
#include <stdio.h>
#include "CommandDefine.h"
/*
* 类名:Logger
* 作用:提供写日志功能,支持多线程,支持可变形参数操作,支持写日志级别的设置
* 接口:SetLogLevel:设置写日志级别
TraceKeyInfo:忽略日志级别,写关键信息
TraceError:写错误信息
TraceWarning:写警告信息
TraceInfo:写一般信息
*/
class Logger
{
public:
//默认构造函数
Logger();
//构造函数
Logger(const char * strLogPath, EnumLogLevel nLogLevel = EnumLogLevel::LogLevelNormal);
//析构函数
virtual ~Logger();
public:
//写关键信息
void TraceKeyInfo(const char * strInfo, ...);
//写错误信息
void TraceError(const char* strInfo, ...);
//写警告信息
void TraceWarning(const char * strInfo, ...);
//写一般信息
void TraceInfo(const char * strInfo, ...);
//设置写日志级别
void SetLogLevel(EnumLogLevel nLevel);
private:
//写文件操作
void Trace(const char * strInfo);
//获取当前系统时间
char * GetCurrentTime();
//创建日志文件名称
void GenerateLogName();
//创建日志路径
void CreateLogPath();