NeuTracer 教程
主页
  • 背景介绍
  • 项目架构
  • 数据收集
  • 服务端
  • 异常检测
项目测试
主页
  • 背景介绍
  • 项目架构
  • 数据收集
  • 服务端
  • 异常检测
项目测试
  • 详细介绍

    • 背景介绍
    • 项目架构
    • 数据收集
    • 服务端
    • 异常检测

Logger - 简洁灵活的日志记录工具

概述

Logger 是 NEU-Trace 项目中的日志记录工具类。

主要特性

  • 多级别日志支持:INFO、WARN、ERROR 和 NONE 四个日志级别

  • 彩色输出:不同级别使用不同颜色,提高可读性

  • 时间戳:每条日志自动附加精确时间戳(精确到毫秒)

  • 格式化输出:支持类似 printf 风格的格式化字符串

  • 可变参数模板:灵活支持各种类型的参数传递

  • 持久化:自动刷新输出缓冲区,确保日志及时写入

  • 时间格式化:支持微秒、毫秒和秒的智能单位转换

使用方法

初始化

Logger logger("log.txt");  // 将日志输出到文件 log.txt

记录不同级别的日志

logger.info("This is an info message: {}", some_variable);
logger.warn("This is a warning message: {}", some_variable);
logger.error("This is an error message: {}", some_variable);

格式化时间间隔

logger.info("Elapsed time: {:.2f} ms", elapsed_time);

日志级别控制

日志级别按严重程度递增:

  • INFO (0): 一般信息,调试和正常操作

  • WARN (1): 警告信息,可能存在问题但不影响程序继续运行

  • ERROR (2): 错误信息,表示发生了严重问题

  • NONE (3): 关闭所有日志输出

每个级别仅显示大于或等于当前设置级别的日志。例如,设置 WARN 级别时,将显示 WARN 和 ERROR 日志,但不显示 INFO 日志。

示例代码

#include "logger.h"

int main() {
    Logger logger("log.txt");  // 初始化日志记录器
    logger.set_level(Logger::INFO);  // 设置日志级别为 INFO

    int some_variable = 42;
    logger.info("This is an info message: {}", some_variable);
    logger.warn("This is a warning message: {}", some_variable);
    logger.error("This is an error message: {}", some_variable);

    double elapsed_time = 123.456;
    logger.info("Elapsed time: {:.2f} ms", elapsed_time);

    return 0;
}