使用汇编替换项进行日志记录
在某些情况下,您可能需要使用汇编替换项来捕获组件在启动期间的日志。
例如,如果您想捕获组件 my-component-logging 的日志,请执行以下操作:
在 Fuchsia 检出目录中,创建一个
//local/BUILD.gn文件:assembly_developer_overrides("netstack-overrides") { platform = { diagnostics = { component_log_initial_interests = [ { component = "core/network/netstack" log_severity = "debug" }, ] } } }此
BUILD.gn文件表示以下内容:- 汇编开发者替换项名为
netstack-overrides。您可以为此字段使用任何有意义的标识符。 - 键
platform、diagnostics和component_log_initial_interests均基于有效商品配置值的值。如需了解详情,请参阅platform。 - 在此示例中,您使用了组件标识名
core/network/netstack,但也可以使用组件网址fuchsia-pkg://fuchsia.com/netstack3#meta/netstack3.cm。如需详细了解标识名,请参阅组件标识名。 - 对于
log_severity值,请指定要记录的最低日志严重性。例如,debug严重级别。或者,您也可以使用trace,其严重程度低于debug。不过,您可以使用任何级别的日志严重级别。如需详细了解日志严重级别,请参阅为日志记录选择严重级别。
- 汇编开发者替换项名为
创建符合要求的
//local/BUILD.gn文件后,您可以将fx set命令设置为使用此汇编平台配置。例如:fx set --assembly-override=//local:my-component-logging构建 Fuchsia:
fx build现在,您应该可以像往常一样运行或 OTA 安装 Fuchsia 了。
限制日志严重级别
默认情况下,如果测试记录严重级别为 ERROR 或更高的消息,则会失败。这通常表示测试期间发生了意外情况,因此即使测试通过,也通常有必要将此情况告知开发者。
您可以更改每个测试软件包的此默认行为,以允许记录更高严重级别的日志,或让记录较低严重级别日志的测试失败。例如,测试可能预期记录 ERROR,以涵盖失败情况和恢复步骤。
测试可能预计以 ERROR 严重性记录日志。例如,测试可能涵盖失败情况和恢复步骤。其他测试可能预期不会记录严重程度高于 INFO 的任何内容。
例如,若要允许测试生成 ERROR 日志,请执行以下操作:
fuchsia_component("my-package") {
testonly = true
manifest = "meta/my-test.cml"
deps = [ ":my_test" ]
}
fuchsia_test_package("my-package") {
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
test_components = [ ":my-test" ]
}
如需在任何严重程度高于 INFO 的消息出现时使测试失败,请将 max_severity 设置为 "INFO"。
max_severity 的有效值:TRACE、DEBUG、INFO、WARN、ERROR、FATAL。
另请参阅:为日志记录选择严重性。