当前位置: 首页 > news >正文

石家庄桥西区网站建设有什么手机网站

石家庄桥西区网站建设,有什么手机网站,ppt免费制作网站,好的html5网站需求描述 日志等级:定义一个枚举类型 LogLevel,包含至少四个等级:DEBUG、INFO、WARNING、ERROR。日志记录:实现一个 Logger 类,包含以下功能: 一个静态方法 log,接受 LogLevel 和一个字符串作为…

需求描述

  1. 日志等级:定义一个枚举类型 LogLevel,包含至少四个等级:DEBUGINFOWARNINGERROR
  2. 日志记录:实现一个 Logger 类,包含以下功能:
    • 一个静态方法 log,接受 LogLevel 和一个字符串作为参数,用于记录日志。
    • 一个静态方法 setLevel,用于设置日志等级,只有当记录的日志等级大于等于设置的等级时,日志才会被输出。
    • 日志输出应包括时间戳、日志等级和日志信息。
  3. 多文件支持Logger 类应该支持将日志输出到不同的文件,例如 debug.loginfo.logwarning.log 和 error.log
  4. 线程安全Logger 类应该是线程安全的,以支持多线程环境下的日志记录。

代码示例:

#include <iostream>
#include <string>
#include <fstream>
#include <mutex>
#include <chrono>
#include <ctime>using namespace std;enum LogLevel
{DEBUG,INFO,WARNING,ERROR,
};class Logger
{
private:static LogLevel m_currentLevel;static mutex mtx;
public:Logger(/* args */);~Logger();public:static void setLevel(LogLevel level);// 记录日志生成文件static void log(LogLevel level, const string &msg);
};Logger::Logger(/* args */)
{
}Logger::~Logger()
{
}void Logger::setLevel(LogLevel level)
{lock_guard<mutex> lock(mtx);m_currentLevel = level;
}// 记录日志生成文件
void Logger::log(LogLevel level, const string &msg)
{// 加锁lock_guard<mutex> lock(mtx);// 根据默认设置的等级屏蔽掉低于该等级的日志,不需要生成对应的文件if(level >= m_currentLevel){string strLevel;switch (level){case DEBUG:strLevel = "DEBUG";break;case INFO:strLevel = "INFO";break;case WARNING:strLevel = "WARNING";break;case ERROR:strLevel = "ERROR";break;default:strLevel = "UNKNOW";break;}// 记录日志的时间time_t now = time(nullptr);tm *currTime = localtime(&now);char buffer[80];strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", currTime);// 创建日志文件名并写入数据string fileName = strLevel + ".log";// 打开文件,以追加的形式写入ofstream file(fileName, ios_base::app);if(!file.is_open()){cerr << "Unable to open log file: " << fileName << endl;}file << buffer << "[" << strLevel << "]" << msg <<endl;file.close();}
}// 初始化静态变量
LogLevel Logger::m_currentLevel = INFO;
std::mutex Logger::mtx;int main()
{Logger::setLevel(INFO); // 默认为INFOLogger::log(DEBUG, "This is a debug message."); // 不输出Logger::log(INFO, "This is an info message."); // 输出到 info.logLogger::log(WARNING, "This is a warning message."); // 输出到 warning.logLogger::log(ERROR, "This is an error message."); // 输出到 error.logreturn 0;
}

http://www.yayakq.cn/news/213186/

相关文章:

  • 企业网站的建立多少钱购物网站开发可行性
  • 在linux系统上用什么做网站h5网站开发软件下载
  • 网站建设域名申请wordpress插件放在主题的哪里
  • 成都网站制作费用交互型网站
  • 谷歌优化 网站建设济南做网站的好公司
  • 建设银行深圳天健世纪支行网站梭子手做鱼网站
  • 网站获取访客qq号品牌策划与推广实训报告
  • 帮做试卷的网站南昌网站维护制作
  • 技术支持 上海做网站域名怎么创建网站吗
  • 梅州哪里做网站wordpress 添加文章
  • 专门做相声的网站电子商务有限公司怎么注册
  • 做文明人网站专题wordpress导出数据库结构
  • 网站正在建设中 html5直播电商玩法介绍
  • 手机网站建设事项购卡网页怎么制作
  • 沈阳世纪兴网站制作公司网站联系方式修改织梦
  • 橙色的网站上海工商局官网查询
  • 网站备案通过什么可以备案有关做能源的网站
  • 有哪些网站可以用河南省建设工程质量安全监督网站
  • 海口网站建设王道下拉棒网站网络的可用性
  • 四川学校网站建设电子商务网站 技术方案
  • 公司网站建设费分录首页调用网站栏目id
  • 宾馆网站模板wordpress dcloud
  • 专业建设规划方案模板宁波关键词优化品牌
  • 郴州网站制作建设深圳网站建设 东莞网站建设
  • 国外有哪些设计网站推荐工作流程管理系统说明书
  • 网站建设业务优秀的手机网站标准
  • 网页设计与网站建设完全教程网站字体大小是多少
  • 郑州网站建设 股权投资wordpress随机文章插件
  • 官方网站minecraft为企业做好服务保障
  • 网站建设空间是指什么软件竹子建站怎么赚钱