【C++练习】日志管理系统设计与实现

题目:

日志管理系统设计与实现

描述

你需要设计一个简易的日志管理系统,该系统能够根据不同的日志级别(错误、警告、信息)输出相应的日志信息。系统应包含一个Log类,该类具有以下功能:

  1. 日志级别枚举:定义一个枚举类型LogLevel,包含三个级别——ERROR(错误),WARNING(警告),INFO(信息)。其中,ERROR的优先级最高,INFO的优先级最低。

  2. 构造函数Log类的构造函数接收一个LogLevel类型的参数,用于初始化当前日志级别。

  3. 设置日志级别:提供一个成员函数SetLevel,允许动态修改日志对象的当前日志级别。

  4. 日志输出函数

    • Error:当当前日志级别小于等于ERROR时,输出错误日志。
    • Warning:当当前日志级别小于等于WARNING时,输出警告日志。
    • Info:当当前日志级别小于等于INFO时,输出信息日志。
  5. 日志输出格式:错误日志应输出到标准错误流(std::cerr),警告和信息日志应输出到标准输出流(std::cout)。每条日志信息前需带有相应的日志级别标签,格式为[LEVEL]: message,其中LEVEL为日志级别(ERRORWARNINGINFO),message为具体的日志内容。

要求

请根据上述描述,完成Log类的设计与实现,并在main函数中创建Log对象,设置日志级别为INFO,然后分别调用ErrorWarningInfo成员函数输出三条日志信息,以验证你的日志管理系统是否能够正确工作。

源代码:

#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;
}

运行截图:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值