协议
日志
在 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 |
LogLevelFilter
|
将严重级别用作确定日志记录级别的阈值。 |
无默认值 |
tags |
vector<string>[16]
|
如果为非空,则返回包含至少一个指定标记的所有消息。如果为空,系统将不会按标记过滤消息。
传递的标记的长度不应超过 |
无默认值 |
日志消息
在 fuchsia.logger/logger.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
pid |
uint64
|
无默认值 | |
tid |
uint64
|
无默认值 | |
time |
zx/Time
|
无默认值 | |
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 |
|
DEBUG |
32 |
|
INFO |
48 |
|
WARN |
64 |
|
ERROR |
80 |
|
严重 |
96 |
|
无 |
127 |
联合
LogSink_WaitForInterestChange_Result 严格
在 fuchsia.logger/logger.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
LogSink_WaitForInterestChange_Response
|
|
2 |
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 |
可以传递以按监听器过滤的标记长度上限。 |