当前位置 : 主页 > 编程语言 > c语言 >

日志等级类

来源:互联网 收集:自由互联 发布时间:2023-08-25
日志等级类 // 日志等级类#ifndef __M_LEVEL_H__#define __M_LEVEL_H__namespace nmzlog{ class LogLevel{ public: // 日志等级用枚举类来表示,通过类来访问,避免枚举冲突 // 定义出系统所包含的全部日志等

日志等级类

// 日志等级类
#ifndef __M_LEVEL_H__
#define __M_LEVEL_H__
namespace nmzlog{
    class LogLevel{
    public:
        // 日志等级用枚举类来表示,通过类来访问,避免枚举冲突
        // 定义出系统所包含的全部日志等级,每一个项目中都会设置一个默认的日志输出等级,大于等级默认时才输出
        enum class value{
            UNKNOW = 0,//未知级别
            DEBUG,//调试级别
            INFO,//提示级别
            WARN,//警告级别
            ERROR,//错误级别
            FATAL,//致命级别
            OFF//关闭日志等级输出
        };
        // 提供一个接口将枚举等级类转换为对应的字符串
        // 不需要传递this指针,可以定义成静态成员函数
        static const char* tostring(LogLevel::value level)
        {
            //根据对应的日志等级返回字符串
            switch(level)
            {
                case LogLevel::value::DEBUG :
                    return "DEBUG";
                case LogLevel::value::INFO:
                    return "INFO";
                case LogLevel::value::WARN:
                    return "WARN";
                case LogLevel::value::ERROR:
                    return "ERROR";
                case LogLevel::value::FATAL:
                    return "FATAL";  
                case LogLevel::value::OFF:
                    return "OFF"; 
            }
            return "UNKNOW";
        }
    };
}
#endif

日志等级类的测试

#include "util.hpp"
#include "LogLevel.hpp"
// 日志等级类的测试
int main()
{
    std::cout << nmzlog::LogLevel::tostring(nmzlog::LogLevel::value::DEBUG) <<std::endl;
}
网友评论