RMVL  2.5.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
日志

提供异步、线程安全的多后端日志记录功能 更多...

struct  rm::sink_write_t
 日志后端写入定制点 更多...
struct  rm::sink_flush_t
 日志后端持久化定制点 更多...
struct  rm::StdoutSink
 stdout 日志后端 更多...
class  rm::FileSink
 文件日志后端 更多...
class  rm::SerialSink
 串口日志后端 更多...
class  rm::UDPSink
 UDP 日志后端 更多...
struct  rm::LoggerOptions
 日志公共配置 更多...
class  rm::Logger
 异步线程安全日志器 更多...
class  rm::BasicLoggerProxy
 默认日志器代理 更多...

枚举

enum class  rm::LogLevel : uint8_t {
  rm::LogLevel::Debug , rm::LogLevel::Info , rm::LogLevel::Warn , rm::LogLevel::Error ,
  rm::LogLevel::Critical , rm::LogLevel::Off
}
 日志级别 更多...
enum class  rm::LogOverflowPolicy : uint8_t { rm::LogOverflowPolicy::Block , rm::LogOverflowPolicy::DropNewest , rm::LogOverflowPolicy::DropOldest }
 异步队列溢出策略 更多...

变量

constexpr sink_write_t rm::sink_write {}
 【定制点对象】日志后端写入器
constexpr sink_flush_t rm::sink_flush {}
 【定制点对象】日志后端持久化器
constexpr BasicLoggerProxy rm::std_logger {}
 stdout 默认线程安全日志器,首次使用时懒加载

详细描述

提供异步、线程安全的多后端日志记录功能

  • rm::Logger 负责管理独立的日志级别、异步队列、工作线程和输出后端; LoggerOptions 只保存各后端共用的配置。
  • FileSinkSerialSinkUDPSink 分别封装对应输出后端的资源与写入行为。
  • rm::std_logger 是进程内默认 stdout 日志器的懒加载代理,适合无需单独配置后端的通用日志场景。
    自定义日志后端
    自定义 Sink 需要在其所在命名空间中提供 sink_write_invokesink_flush_invoke,例如:
    namespace custom {
    struct BufferSink {
    std::string *buffer;
    };
    bool sink_write_invoke(BufferSink &sink, rm::LogLevel, std::string_view record) noexcept {
    sink.buffer->append(record);
    return true;
    }
    bool sink_flush_invoke(BufferSink &) noexcept { return true; }
    } // namespace custom
    std::string output;
    rm::Logger logger(custom::BufferSink{&output});
    logger.info("custom sink: {}", 42);
    logger.flush(); // 强制触发持久化
    LogLevel
    日志级别
    定义 logger.hpp:60

枚举类型说明

◆ LogLevel

enum class rm::LogLevel : uint8_t
strong

#include <rmvl/logger.hpp>

日志级别

枚举值
Debug 

调试信息

Info 

普通信息

Warn 

警告信息

Error 

错误信息

Critical 

严重错误

Off 

关闭日志

◆ LogOverflowPolicy

enum class rm::LogOverflowPolicy : uint8_t
strong

#include <rmvl/logger.hpp>

异步队列溢出策略

枚举值
Block 

阻塞日志生产线程,直至队列有足够空间

DropNewest 

丢弃当前日志

DropOldest 

丢弃队列中最早的日志

变量说明

◆ sink_flush

sink_flush_t rm::sink_flush {}
constexpr

#include <rmvl/logger.hpp>

【定制点对象】日志后端持久化器

◆ sink_write

sink_write_t rm::sink_write {}
constexpr

#include <rmvl/logger.hpp>

【定制点对象】日志后端写入器

◆ std_logger

BasicLoggerProxy rm::std_logger {}
constexpr

#include <rmvl/logger.hpp>

stdout 默认线程安全日志器,首次使用时懒加载