NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::logger类 参考

层级化日志记录器 更多...

#include <logger.hpp>

类 neforce::logger 继承关系图:
[图例]

Public 成员函数

 logger (string name)
 构造指定名称的 Logger
const stringname () const noexcept
loggerparent () const noexcept
void set_level (log_level level)
 设置级别(不影响子 logger 的显式级别)
log_level level () const noexcept
log_level effective_level () const noexcept
bool should_log (log_level level) const noexcept
 检查指定级别是否应该输出
void add_sink (shared_ptr< log_sink > sink)
 添加输出目标
void clear_sinks ()
 清除所有输出目标
void enable_async (shared_ptr< thread_pool > pool=nullptr, size_t queue_size=8192, overflow_policy policy=overflow_policy::block)
 启用异步模式
void disable_async ()
 切换回同步模式,排空队列中的所有事件
bool is_async () const noexcept
void set_filter (function< bool(const log_event &)> filter)
 设置自定义过滤器
void add_context (const string &key, string value)
 添加上下文键值对
void remove_context (const string &key)
 移除上下文键
void clear_context ()
 清除所有上下文
void set_auto_flush (int64_t interval_ms)
 设置自动刷新间隔
void log (log_level level, string msg, source_location loc)
 记录一条日志
void trace (string msg, source_location loc)
 TRACE 级别快捷方法
void debug (string msg, source_location loc)
 DEBUG 级别快捷方法
void info (string msg, source_location loc)
 INFO 级别快捷方法
void warn (string msg, source_location loc)
 WARN 级别快捷方法
void error (string msg, source_location loc)
 ERROR 级别快捷方法
void fatal (string msg, source_location loc)
 FATAL 级别快捷方法
void flush ()
 刷新所有 sink
Public 成员函数 继承自 neforce::enable_shared_from_this< logger >
shared_ptr< loggershared_from_this ()
 获取指向自身的共享指针
weak_ptr< loggerweak_from_this () noexcept
 获取指向 this 的弱指针

静态 Public 属性

static constexpr log_level INHERIT = static_cast<log_level>(255)
 特殊级别值:表示继承父 logger 的级别

额外继承的成员函数

Protected 成员函数 继承自 neforce::enable_shared_from_this< logger >
 enable_shared_from_this () noexcept=default
 构造函数

详细描述

层级化日志记录器

每个 logger 有唯一的名称(如 "app.network.tcp"), 通过 '.' 分隔形成层级。子 logger 默认继承父 logger 的级别。

主要功能:

  • 运行时级别过滤与继承(INHERIT 标记)
  • 同步 / 线程池异步双模式
  • COW 上下文(零拷贝共享)
  • 自定义过滤器
  • 多 sink 输出
  • 自动刷新

在文件 logger.hpp43 行定义.

构造及析构函数说明

◆ logger()

neforce::logger::logger ( string name)
explicit

构造指定名称的 Logger

参数
nameLogger 名称(点分隔的层级名)

引用了 logger() , 以及 name().

被这些函数引用 logger() , 以及 parent().

成员函数说明

◆ add_context()

void neforce::logger::add_context ( const string & key,
string value )

添加上下文键值对

参数
key键名
value

◆ add_sink()

void neforce::logger::add_sink ( shared_ptr< log_sink > sink)

添加输出目标

参数
sink输出目标

◆ effective_level()

log_level neforce::logger::effective_level ( ) const
inlinenodiscardnoexcept
返回
当前生效的级别(继承已解析)

在文件 logger.hpp130 行定义.

◆ enable_async()

void neforce::logger::enable_async ( shared_ptr< thread_pool > pool = nullptr,
size_t queue_size = 8192,
overflow_policy policy = overflow_policy::block )

启用异步模式

参数
pool线程池(共享),nullptr 则创建专用池
queue_size队列容量
policy溢出策略

引用了 block.

◆ is_async()

bool neforce::logger::is_async ( ) const
inlinenodiscardnoexcept
返回
是否处于异步模式

在文件 logger.hpp165 行定义.

引用了 neforce::memory_order_acquire.

◆ level()

log_level neforce::logger::level ( ) const
inlinenodiscardnoexcept
返回
显式设置的级别(可能是 INHERIT)

在文件 logger.hpp127 行定义.

被这些函数引用 log(), set_level() , 以及 should_log().

◆ log()

void neforce::logger::log ( log_level level,
string msg,
source_location loc )

记录一条日志

参数
level日志级别
msg格式化后的消息
loc源码位置

引用了 level().

被这些函数引用 debug(), error(), fatal(), info(), trace() , 以及 warn().

◆ name()

const string & neforce::logger::name ( ) const
inlinenodiscardnoexcept
返回
Logger 名称

在文件 logger.hpp115 行定义.

被这些函数引用 logger().

◆ parent()

logger * neforce::logger::parent ( ) const
inlinenodiscardnoexcept
返回
父 Logger 指针,根 Logger 返回 nullptr

在文件 logger.hpp118 行定义.

引用了 logger().

◆ remove_context()

void neforce::logger::remove_context ( const string & key)

移除上下文键

参数
key键名

◆ set_auto_flush()

void neforce::logger::set_auto_flush ( int64_t interval_ms)
inline

设置自动刷新间隔

参数
interval_ms间隔毫秒数,0=禁用

在文件 logger.hpp193 行定义.

引用了 neforce::memory_order_release.

◆ set_filter()

void neforce::logger::set_filter ( function< bool(const log_event &)> filter)

设置自定义过滤器

参数
filter过滤函数,返回 true 表示允许输出

◆ set_level()

void neforce::logger::set_level ( log_level level)

设置级别(不影响子 logger 的显式级别)

参数
level新级别,或 INHERIT 表示继承父级

引用了 level().

◆ should_log()

bool neforce::logger::should_log ( log_level level) const
inlinenodiscardnoexcept

检查指定级别是否应该输出

参数
level待检查的日志级别
返回
该级别是否达到当前生效级别

在文件 logger.hpp137 行定义.

引用了 level() , 以及 OFF.


该类的文档由以下文件生成: