当 Fuchsia 组件想要写入日志时,它必须获得与
其环境中的 fuchsia.logger.LogSink
(通常提供)
档案管理员的实例。
典型的 Fuchsia 服务连接是匿名的,这样服务器和客户端就没有
彼此的识别信息客户端只能在其命名空间中看到服务,例如
/svc/fuchsia.logger.LogSink
,并且服务器看到发送到其传入请求的匿名 Open()
请求
命名空间。
同时,了解日志的来源也很重要,因为日志是可靠的出处
元数据可以更好地监控、存储、查询和呈现日志。系统会
它通过一项名为“归因日志记录”的功能用于标识传入 LogSink
的来源
连接。
组件管理器:CapabilityRequested 事件
档案管理员的清单 expose
fuchsia.logger.LogSink
与其他服务功能一样,但
它还会从框架中 use
事件,将其绑定到其命名空间中的服务:
{
event: "capability_requested",
from: "framework",
filter: { name: "fuchsia.logger.LogSink" },
},
{
event_stream: "EventStream",
subscriptions: [
{
event: "capability_requested",
mode: "async",
}
],
},
这会使组件管理器重定向来自默认 fuchsia.io
命名空间的传入请求
添加到 fuchsia.sys2.EventStream
协议。档案管理员于以下日期接收事件:
此协议与 LogConnectionListener
类似,它会从
由组件管理器与 LogSink
通道句柄一起发送的 ComponentDescriptor。通过
描述符中包含的名称是在功能路由期间构造的。
为 LogSink
配置 capability_requested
事件不会影响 capability
只是将渠道作为 Event(而不是作为
Open()。这意味着,用于传递归因 LogSink
的 CML 对于其余部分保持不变
组件拓扑