GKD.RoboCtrl
载入中...
搜索中...
未找到
logger.h 文件参考

用于日志输出的组件。 更多...

详细描述

用于日志输出的组件。

作者
Junity

提供日志等级控制和格式化日志输出功能,支持Debug、Info、Warn和Error四个等级。 Logger类是提供日志基础功能的单例类,用于管理全局日志设置和输出。 logable类是一个辅助基类,通过CRTP模式为派生类提供日志输出功能,要求派生类实现desc()方法以提供描述信息。

版本
0.1
日期
2025-11-09

在文件 logger.h 中定义.

#include <atomic>
#include <format>
#include <mutex>
#include <string_view>
#include <utility>
#include "utils/singleton.hpp"
#include "core/multiton.hpp"

浏览源代码.

class  roboctrl::log::logger
 日志类 更多...
 
class  roboctrl::log::logable< T >
 用于提供日志功能的辅助基类 通过CRTP模式实现,要求派生类实现desc()方法以提供描述信息,在继承时传入派生类自身类型作为模板参数。 继承这个类后,派生类可以方便地使用log_debug、log_info、log_warn和log_error方法来记录日志,这些方法会自动包含类的描述信息。 示例: 更多...
 

命名空间

namespace  roboctrl::log
 日志模块
 

宏定义

#define LOG_LOGGER_CALL(level, role, fmt, ...)    ::roboctrl::logger::instance().log(level, role, fmt __VA_OPT__(, ) __VA_ARGS__)
 
#define GET_ROLE   (std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + __FUNCTION__)
 
#define LOG_DEBUG(fmt, ...)   LOG_LOGGER_CALL(::roboctrl::log_level::Debug, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)
 
#define LOG_INFO(fmt, ...)   LOG_LOGGER_CALL(::roboctrl::log_level::Info, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)
 
#define LOG_WARN(fmt, ...)   LOG_LOGGER_CALL(::roboctrl::log_level::Warn, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)
 
#define LOG_ERROR(fmt, ...)   LOG_LOGGER_CALL(::roboctrl::log_level::Error, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)
 

枚举

enum  log_level { Debug = 0 , Info , Warn , Error }
 

宏定义说明

◆ GET_ROLE

#define GET_ROLE   (std::string(__FILE__) + ":" + std::to_string(__LINE__) + ":" + __FUNCTION__)

在文件 logger.h151 行定义.

◆ LOG_DEBUG

#define LOG_DEBUG (   fmt,
  ... 
)    LOG_LOGGER_CALL(::roboctrl::log_level::Debug, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)

在文件 logger.h153 行定义.

◆ LOG_ERROR

#define LOG_ERROR (   fmt,
  ... 
)    LOG_LOGGER_CALL(::roboctrl::log_level::Error, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)

在文件 logger.h156 行定义.

◆ LOG_INFO

#define LOG_INFO (   fmt,
  ... 
)    LOG_LOGGER_CALL(::roboctrl::log_level::Info, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)

在文件 logger.h154 行定义.

◆ LOG_LOGGER_CALL

#define LOG_LOGGER_CALL (   level,
  role,
  fmt,
  ... 
)     ::roboctrl::logger::instance().log(level, role, fmt __VA_OPT__(, ) __VA_ARGS__)

在文件 logger.h148 行定义.

◆ LOG_WARN

#define LOG_WARN (   fmt,
  ... 
)    LOG_LOGGER_CALL(::roboctrl::log_level::Warn, GET_ROLE, fmt __VA_OPT__(, ) __VA_ARGS__)

在文件 logger.h155 行定义.