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

日志系统**

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.xdnf.cn/news/6918.html

相关文章:

  • 蓝桥杯11届国B 答疑
  • Redis内存管理深度解析
  • LeetCode --- 156双周赛
  • JAVA的常见API文档(上)
  • 高频面试题(含笔试高频算法整理)基本总结回顾110
  • 角点特征:从传统算法到深度学习算法演进
  • 电子电路:什么是色环电阻器,怎么识别和计算阻值?
  • React学习(二)-变量
  • Docker常见命令解读
  • Vue.js---watch 的实现原理
  • SpringSecurity授权、认证
  • 数据库blog1_信息(数据)的处理与效率提升
  • Java 应用如何实现 HTTPS:加密数据传输的实用指南
  • liunx常用命令总结
  • RT Thread FinSH(msh)调度逻辑
  • mysql中4种扫描方式和聚簇索引非聚簇索引【爽文一篇】
  • 2025年EB SCI2区TOP,多策略改进黑翅鸢算法MBKA+空调系统RC参数辨识与负载聚合分析,深度解析+性能实测
  • Java面向对象基础学习笔记
  • Kafka 生产者工作流程详解
  • RAG与微调:企业知识库落地的技术选型
  • Axure元件动作四:设置选中
  • 【RabbitMQ】整合 SpringBoot,实现工作队列、发布/订阅、路由和通配符模式
  • Vue.js 教学第三章:模板语法精讲,插值与 v-bind 指令
  • 养生精要:五大维度打造健康生活
  • day33-网络编程
  • java中的运算符
  • C/C++之内存管理
  • Python爬虫-爬取百度指数之人群兴趣分布数据,进行数据分析
  • [Java][Leetcode simple] 13. 罗马数字转整数
  • 目标检测工作原理:从滑动窗口到Haar特征检测的完整实现