YSTest: platform::Logger类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 类型 | Public 成员函数 | 静态 Public 成员函数 | Public 属性 | Private 属性 | 所有成员列表
platform::Logger类 参考
Diagnostic » Tracing

日志记录器。 更多...

`#include <Debug.h>`

platform::Logger 的协作图:
[图例]

## Public 类型

using | Level = Descriptions::RecordLevel
using | Filter = std::function< bool(Level, Logger &)>
using | Sender = std::function< void(Level, Logger &, const char *)>

## Public 成员函数

| DefGetter (const ynothrow, const Sender &, Sender, sender) void SetFilter(Filter)
| 设置过滤器。 更多...
void | SetSender (Sender)
| 设置发送器。 更多...
template<typename _func >
auto | AccessRecord (_func f) -> decltype(f())
| 访问日志记录执行指定操作。 更多...

## 静态 Public 成员函数

static bool | DefaultFilter (Level, Logger &) ynothrow
| 默认过滤：仅允许等级不大于阈值的日志被记录。 更多...

## Public 属性

Level | FilterLevel = Descriptions::Debug

## Private 属性

Filter | filter {DefaultFilter}
Sender | sender {FetchDefaultSender()}
Concurrency::recursive_mutex | record_mutex
| 日志记录锁。 更多...
static Logger const char * | ynothrowv
static | YB_NONNULL (3) void DefaultSendLog(Level
| 默认发送器：使用 std::cerr 输出。 更多...
static | YB_NONNULL (3) void DefaultSendLogToFile(Level
| 默认发送器：使用 stderr 输出。 更多...
void | DoLog (Level, const char *)
| 转发等级和日志至发送器。 更多...
| PDefH (void, DoLog, Level lv, string_view sv) ImplRet(DoLog(lv
sv data())) private | PDefH (void, DoLogRaw, Level lv, string_view sv) ImplRet(DoLogRaw(lv
| 转发等级和日志至发送器。 更多...
template<typename _fCaller , typename... _tParams>
void | Log (Level level, _fCaller &&f, _tParams &&...args)
sv data())) private sv static data())) public Sender | FetchDefaultSender (string_view="YFramework")
| 转发等级和异常对象至发送器。 更多...

## 详细描述

日志记录器。

自从
  build 498

在文件 Debug.h 第 94 行定义.

## 成员类型定义说明

using platform::Logger::Filter = std::function<bool(Level, Logger&)>

在文件 Debug.h 第 98 行定义.

using platform::Logger::Level = Descriptions::RecordLevel

在文件 Debug.h 第 97 行定义.

using platform::Logger::Sender = std::function<void(Level, Logger&, const char*)>

注解
  传递的第三参数非空。

在文件 Debug.h 第 100 行定义.

## 成员函数说明

template<typename _func >

auto platform::Logger::AccessRecord | ( | _func | f | ) | -> decltype(f())

inline

访问日志记录执行指定操作。

注解
  线程安全：互斥访问。

自从
  build 558

在文件 Debug.h 第 147 行定义.

参考 CHRLib::f().

函数调用图:

static bool platform::Logger::DefaultFilter | ( | Level | ,
|  | Logger & |
| ) |  |

static

默认过滤：仅允许等级不大于阈值的日志被记录。

platform::Logger::DefGetter | ( | const ynothrow | ,
|  | const Sender & | ,
|  | Sender | ,
|  | sender |
| ) |  |

设置过滤器。

自从
  build 628

注解
  忽略空过滤器。

void platform::Logger::DoLog | ( | Level | ,
|  | const char * |
| ) |  |

转发等级和日志至发送器。

注解
  忽略字符串参数对应的空数据指针参数。
  保证串行发送。

sv data ())) private sv static data ())) public Sender platform::Logger::FetchDefaultSender | ( | string_view | = `"YFramework"` | ) |

static

转发等级和异常对象至发送器。

根据异常对象确定日志字符串并发送。若转发时抛出异常，则记录此异常。 对并发操作保证串行发送，且整个过程持有锁 record_mutex 以保证连续性。

取新建的平台相关的默认发送：按指定的标签取平台相关实现。

前置条件
  断言：参数的数据指针非空。

自从
  build 658

template<typename _fCaller , typename... _tParams>

void platform::Logger::Log | ( | Level | level,
|  | _fCaller && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 Debug.h 第 222 行定义.

参考 CatchExpr, CHRLib::e, TryExpr , 以及 yforward.

platform::Logger::PDefH | ( | void | ,
|  | DoLog | ,
|  | Level | lv,
|  | string_view | sv
| ) |  |

自从
  build 659

sv data ())) private platform::Logger::PDefH | ( | void | ,
|  | DoLogRaw | ,
|  | Level | lv,
|  | string_view | sv
| ) |  |

转发等级和日志至发送器。

前置条件
  间接断言：字符串参数对应的数据指针非空。

自从
  build 510
  build 659

void platform::Logger::SetSender | ( | Sender |  | ) |

设置发送器。

注解
  忽略空发送器。

自从
  build 519

参考自 YSLib::Environment::Environment().

这是这个函数的调用关系图:

static platform::Logger::YB_NONNULL | ( | 3 |  | ) |

static

默认发送器：使用 std::cerr 输出。

前置条件
  间接断言：第三参数非空。

注解
  DS 平台：空操作。

static platform::Logger::YB_NONNULL | ( | 3 |  | ) |

static

默认发送器：使用 stderr 输出。

自从
  build 626

## 类成员变量说明

Filter platform::Logger::filter {DefaultFilter}

private

不变性
  `bool(filter)` 。

在文件 Debug.h 第 110 行定义.

Level platform::Logger::FilterLevel = Descriptions::Debug

在文件 Debug.h 第 105 行定义.

Concurrency::recursive_mutex platform::Logger::record_mutex

private

日志记录锁。

自从
  build 551

仅 DoLog 和 DoLogException 在发送日志时使用的锁。 使用递归锁以允许用户在发送器中间接递归调用 DoLog 和 DoLogException 。

在文件 Debug.h 第 120 行定义.

Sender platform::Logger::sender {FetchDefaultSender()}

private

不变性
  `bool(Sender)` 。

在文件 Debug.h 第 112 行定义.

static Logger const char * platform::Logger::ynothrowv

在文件 Debug.h 第 165 行定义.

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

- Debug.h