题目:
日志管理系统设计与实现
描述:
你需要设计一个简易的日志管理系统,该系统能够根据不同的日志级别(错误、警告、信息)输出相应的日志信息。系统应包含一个Log类,该类具有以下功能:
-
日志级别枚举:定义一个枚举类型
LogLevel,包含三个级别——ERROR(错误),WARNING(警告),INFO(信息)。其中,ERROR的优先级最高,INFO的优先级最低。 -
构造函数:
Log类的构造函数接收一个LogLevel类型的参数,用于初始化当前日志级别。 -
设置日志级别:提供一个成员函数
SetLevel,允许动态修改日志对象的当前日志级别。 -
日志输出函数:
Error:当当前日志级别小于等于ERROR时,输出错误日志。Warning:当当前日志级别小于等于WARNING时,输出警告日志。Info:当当前日志级别小于等于INFO时,输出信息日志。
-
日志输出格式:错误日志应输出到标准错误流(
std::cerr),警告和信息日志应输出到标准输出流(std::cout)。每条日志信息前需带有相应的日志级别标签,格式为[LEVEL]: message,其中LEVEL为日志级别(ERROR、WARNING、INFO),message为具体的日志内容。
要求:
请根据上述描述,完成Log类的设计与实现,并在main函数中创建Log对象,设置日志级别为INFO,然后分别调用Error、Warning、Info成员函数输出三条日志信息,以验证你的日志管理系统是否能够正确工作。
源代码:
#include <iostream>
#include <string>
#include <stdexcept>
class Log {
public:
enum LogLevel {
ERROR = 0,
WARNING = 1,
INFO = 2
};
Log(LogLevel level) : currentLevel(level) {}
void SetLevel(LogLevel level) {
currentLevel = level;
}
void Error(const std::string& message) {
if (currentLevel <= ERROR) {
std::cerr << "[ERROR]: " << message << std::endl;
}
}
void Warning(const std::string& message) {
if (currentLevel <= WARNING) {
std::cout << "[WARNING]: " << message << std::endl;
}
}
void Info(const std::string& message) {
if (currentLevel <= INFO) {
std::cout << "[INFO]: " << message << std::endl;
}
}
private:
LogLevel currentLevel;
};
int main() {
Log log(Log::INFO); // 创建Log对象,并设置日志级别为INFO
log.Error("This is an error message.");
log.Warning("This is a warning message.");
log.Info("This is an info message.");
return 0;
}
运行截图:

460

被折叠的 条评论
为什么被折叠?



