Fuchsia.logger

新增:7

协议

日志

在 fuchsia.logger/logger.fidl 中定义

LogListenerSafe 用于注册以监听日志的接口。

ListenSafe

通过批量调用 LogMany(),然后针对每条新日志消息调用 Log(),转储所有缓存的日志。 options 为 null 表示未请求过滤。

请求

名称类型
log_listener client_end:LogListenerSafe
options LogFilterOptions?

LogListenerSafe

在 fuchsia.logger/logger.fidl 中定义

一个监听器,用于在收到每条消息时通知 Log。

完成

当此监听器传递给 DumpLogsSafe() 且所有缓存的日志均已发送时调用。

请求

<EMPTY>

日志

针对单条消息调用。

返回值用于流控制,实现者应确认收到每条消息,以便继续接收后续消息。

请求

名称类型
log LogMessage

响应

<EMPTY>

LogMany

在提供缓存的日志时调用。

每次调用的日志大小上限为 MAX_LOG_MANY_SIZE_BYTES 字节。

返回值用于流控制,实现者应确认收到每个批次,以便继续接收后续消息。

请求

名称类型
log vector<LogMessage>

响应

<EMPTY>

LogSink

在 fuchsia.logger/logger.fidl 中定义

排空程序的日志。

OnInit

每当 Archivist 接受新连接时,都会发送此事件。客户端可以使用返回的 IOBuffer 写入日志。

新增:28

响应

名称类型
payload LogSinkOnInitRequest

WaitForInterestChange

每当 LogSink 实现者的关注范围发生变化时,他们都会返回到此挂起获取。客户端应根据注册的 Interest 发出消息。如果传递了空兴趣,客户端应根据其默认设置(例如编译时间配置)发出消息。每个客户端一次只能轮询一次。 在第一次调用返回之前再次调用 WaitForInterestChange 将导致返回错误。

新增:27

请求

<EMPTY>

响应

名称类型
payload LogSink_WaitForInterestChange_Result

STRUCTS

LogFilterOptions

在 fuchsia.logger/logger.fidl 中定义

字段类型说明默认
filter_by_pid bool 无默认应用
pid uint64 无默认应用
filter_by_tid bool 无默认应用
tid uint64 无默认应用
verbosity uint8

如果大于零,系统会根据详细程度过滤日志,并忽略 min_severity。

无默认应用
min_severity LogLevelFilter

用作阈值以确定日志记录级别的严重程度。

无默认应用
tags vector<string:63>:16

如果非空,则返回包含至少一个指定标记的所有消息。如果为空,则不会按标记过滤消息。 传递的标记长度不应超过 MAX_TAG_LEN_BYTES 字节,且标记数量最多为 MAX_TAGS。如果不遵循此限制,监听器将被舍弃。

无默认应用

LogMessage

在 fuchsia.logger/logger.fidl 中定义

字段类型说明默认
pid uint64 无默认应用
tid uint64 无默认应用
time zx/InstantBoot

zx_clock_get_boot

新增:25
无默认应用
severity int32 无默认应用
dropped_logs uint32

请参阅 wire_format.h。由于消息可能会不按顺序传送,因此只有在数量超过上次计数时,才应记录此消息。

无默认应用
tags vector<string:63>:5 无默认应用
msg string:32768 无默认应用

LogSink_WaitForInterestChange_Response

在 fuchsia.logger/logger.fidl 中定义

字段类型说明默认
data fuchsia.diagnostics.types/Interest 无默认应用

枚举

InterestChangeError strict

类型:uint32

在 fuchsia.logger/logger.fidl 中定义

名称值说明
1

在未等待第一次调用返回的情况下,错误地调用了 WaitForInterestChange 两次。

LogLevelFilter strict

类型:int8

在 fuchsia.logger/logger.fidl 中定义

与日志相关过滤功能搭配使用的日志级别。 过滤功能会根据最低严重级别阈值使用启发法,将严重级别等于或高于该阈值的所有日志包含在可打印日志中。

名称值说明
16
32
48
64
80
96
127

TABLES

LogSinkOnInitRequest 资源

在 fuchsia.logger/logger.fidl 中定义

序数字段类型说明
buffer handle<iob>
interest fuchsia.diagnostics.types/Interest

UNIONS

LogSink_WaitForInterestChange_Result strict

在 fuchsia.logger/logger.fidl 中定义

序数变体类型说明
response LogSink_WaitForInterestChange_Response
err InterestChangeError

常量

名称值类型说明
LOG_LEVEL_DEFAULT

用于初始化日志记录器的默认日志级别。

LOG_SEVERITY_MAX_STEP 6 uint8

可用的最高日志严重级别。

LOG_SEVERITY_STEP_SIZE 16 uint8

离散日志严重级别之间的间隔

LOG_VERBOSITY_STEP_SIZE 1 uint8

离散日志详细程度之间的间隔

MAX_DATAGRAM_LEN_BYTES 32768 uint32

消息载荷的最大字节大小。

MAX_LOG_MANY_SIZE_BYTES 16384 uint64

每次调用监听器时记录的最大字节数。

MAX_TAGS 16 uint8

可传递给监听器以进行过滤的标记数量上限。

MAX_TAGS_PER_LOG_MESSAGE 5 uint8

将附加到 LogMessage 的标记数量上限。

MAX_TAG_LEN_BYTES 63 uint8

可传递给过滤器的最大标记长度(按监听器)。