归因 LogSink 连接

当 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 对于其余部分保持不变 组件拓扑

如需了解详情,请参阅协议打开的生命周期事件文档