Fuchsia.logger

添加数量:7

协议

日志

fuchsia.logger/logger.fidl 中定义

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

转储日志安全

通过以下方式转储所有缓存的日志:对 log_listener 调用 Log Many(),后跟 Done()。options 为 null,表示未请求任何过滤。

请求

名称类型
log_listener LogListenerSafe
options LogFilterOptions?

ListenSafe

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

请求

名称类型
log_listener LogListenerSafe
options LogFilterOptions?

ListenSafeWithSelectors

通过对 log_listener 调用 Log() 来监听新的日志条目。options 为 null,表示未请求任何过滤。

请求

名称类型
log_listener LogListenerSafe
options LogFilterOptions?
selectors vector<fuchsia.diagnostics/LogInterestSelector>[64]

LogListenerSafe

fuchsia.logger/logger.fidl 中定义

将每一条消息通知给 Log 的监听器。

完成

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

请求

<空>

日志

为单条消息调用。

返回值用于流控制,实现人员应确认已收到每条消息,以便继续接收未来的消息。

请求

名称类型
log LogMessage

回复

<空>

对数

提供缓存日志时调用。

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

返回值用于流控制,实现人员应确认已收到每个批次,以便继续接收未来的消息。

请求

名称类型
log vector<LogMessage>

回复

<空>

日志接收器

fuchsia.logger/logger.fidl 中定义

排空程序的日志。

连接

发送此套接字以排空。

如需了解预计会通过套接字接收的内容,请参阅 wire_format.h

请求

名称类型
socket handle<socket>

连接结构化

使用结构化日志格式发送要排空的此套接字。

如需了解通过套接字接收的内容,请参阅对结构化记录进行编码

请求

名称类型
socket handle<socket>

等待兴趣更改

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

请求

<空>

回复

名称类型
payload LogSink_WaitForInterestChange_Result

结构

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>[16]

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

无默认值

日志消息

fuchsia.logger/logger.fidl 中定义

字段类型说明默认
pid uint64 无默认值
tid uint64 无默认值
time zx/Time

zx_clock_get_monotonic

无默认值
severity int32 无默认值
dropped_logs uint32

请参阅 wire_format.h。由于消息可能会不按顺序传送,因此仅当消息数量超过最后一个时才会被记录。

无默认值
tags vector<string>[5] 无默认值
msg string[32768] 无默认值

LogSink_WaitForInterestChange_Response 中

fuchsia.logger/logger.fidl 中定义

字段类型说明默认
data fuchsia.diagnostics/Interest 无默认值

枚举

InterestChangeError 严格

类型:uint32

fuchsia.logger/logger.fidl 中定义

名称说明
1

被错误调用 WaitForInterestChange 两次,未等待第一次调用返回。

LogLevelFilter 严格

类型:int8

fuchsia.logger/logger.fidl 中定义

用于日志相关过滤的日志级别。过滤功能使用基于最低严重级别阈值的启发法,将任何等于或大于该阈值的日志包含在可打印日志中。

名称说明
16
32
48
64
80
96
127

联合

LogSink_WaitForInterestChange_Result 严格

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

可以传递以按监听器过滤的标记长度上限。