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

日志系统**

1.设置日志级别

enum LogLevel{TRACE,DEBUG,INFO,WARN,ERROR,FATAL,NUM_LOG_LEVELS,};

2.日志格式

TimeStamp + 级别 + 内容

[2025-05-17 20:32:41][ERROR]This is an error message

3.输出:控制台/文件

4.注意

#include <chrono>
#include <iomanip>
#include <sstream>std::string MyLog::getCurrentTime() {auto now = std::chrono::system_clock::now();//获得当前时间std::time_t t = std::chrono::system_clock::to_time_t(now)//转换为 C 风格的 time_tstd::tm *tm = std::localtime(&t);// 转换为本地时间的 tm 结构体std::ostringstream oss;oss << std::put_time(tm, "%Y-%m-%d %H:%M:%S");return oss.str();
}

std::localtime 不是线程安全的,多线程环境下需加锁。 

namespace myLogger {
void MyLog::log(int level, const std::string &message) {if (level < level_)return;std::lock_guard<std::mutex> lock(mtx_);std::cout << "[" << getCurrentTime() << "]"<< "[" << LevelToString(level) << "]" << message << std::endl;
}

相关文章:

  • 在WSL中的Ubuntu发行版上安装Anaconda、CUDA、CUDNN和TensorRT
  • 深度学习(第3章——亚像素卷积和可形变卷积)
  • 从零开发 1688 数据接口:商品详情页实时采集 API 接入详解
  • VC++6.0分步执行常见问题及解决方案
  • Redis——三大策略
  • TTS:F5-TTS 带有 ConvNeXt V2 的扩散变换器
  • TXT记录解析技术深度解析与应用实践
  • 阿里巴巴视觉生成大模型1.2.1版本深度部署指南
  • 【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
  • Data whale LLM universe
  • Unable to get end effector tips from jmg
  • Linux zip、unzip 压缩和解压
  • 医疗大模型技术演进与行业应用全景
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(23):受身形
  • c/c++的opencv模糊
  • 【leetcode】2900. 最长相邻不相等子序列 I
  • LVGL- 圆弧形状控件
  • 很啰嗦,再次总结 DOM
  • 历史数据分析——中证白酒
  • 阿里云服务器跑模型教程
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 上海明天短暂恢复晴热最高32℃,一大波雨水在候场
  • 广东缉捕1名象牙走私潜逃非洲“红通”逃犯
  • 第十一届世界雷达展开幕,尖端装备、“大国重器”集中亮相
  • 复旦建校120周年大型义诊举行,百余名专家服务市民超三千人次
  • 机器人为啥热衷“搞体育”,经济日报:是向加速融入日常生活发起的冲锋