为了保持可扩展性,将控制台颜色设置和保存文件颜色设置分别用两个头文件。
此外,因为log可能需要在整个工程的不同类中输出信息,因此将文件输出类中设计为
静态数据成员,方便调用。
很简单,直接看代码吧。
#ifndef COUT_TO_FILE_H
#define COUT_TO_FILE_H
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class CoutToFile
{
public:
typedef enum { NONE= 0, DEBUG = 1, ERROR = 2, FATAL= 3} LogLevels;
static bool isCoutToFile;
static ofstream ofObj;
static streambuf* coutBuf;
static streambuf* fileBuf;
static void SaveLog(string info, LogLevels level);
};
#endif
设置输出到控制台的颜色,默认颜色是白色,可以根据需求cout时选择响应的颜色。
该段代码参考引用自:
#ifndef CONSOLE_COLORS_H
#define CONSOLE_COLOR