您可以使用 lib/ddk/debug.h 中定义的 zxlogf(<log_level>,...) 宏,让驱动程序将日志消息发送到 syslog。
默认情况下,日志消息会发送到以下日志,具体取决于日志级别的类型:
- syslog:
ERRORWARNINGINFO
如需控制发送到 syslog 的日志级别,您可以使用产品组件中的平台配置。您可以在产品中指定汇编平台配置,也可以通过产品汇编的开发者替换项指定汇编平台配置。
如需通过开发者替换项为产品组装设置此属性,请在 //local/BUILD.gn 中使用以下代码:
# //local/BUILD.gn:
assembly_developer_overrides("sdhci-debug-logs") {
platform = {
diagnostics = {
component_log_initial_interests = [
{
component = "fuchsia-boot:///sdhci#meta/sdhci.cm"
log_severity = "debug"
},
]
}
}
}
然后,使用 fx set 设置 assembly-override:
fx set <product.board> --assembly-override=//local:sdhci-debug-logs此外,这会为 sdhci 驱动程序启用 DEBUG 和 TRACE 日志,因为我们正在设置最低日志级别,而 TRACE 低于 DEBUG。
驱动程序的日志会带有进程名称“driver”和驱动程序名称的标记。这可用于在搜索特定日志时过滤 syslog 的输出。