当前位置: 首页 > 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;
}

http://www.dtcms.com/a/197393.html

相关文章:

  • 在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
  • 历史数据分析——中证白酒
  • 阿里云服务器跑模型教程
  • 数学复习笔记 17
  • 数据结构*优先级队列(堆)
  • 剖析智能指针shared_ptr实现原理
  • 【软考 McCabe度量法】
  • 并发学习之synchronized,JVM内存图,线程基础知识
  • Hi3516DV500刷写固件
  • 392. Is Subsequence
  • linux线程基础
  • 摄影构图小节
  • Linux线程同步信号量