使用汇编替换项进行日志记录
在某些情况下,您可能需要使用汇编替换项来捕获组件在启动期间的日志。
例如,如果您想捕获组件 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
。
另请参阅:为日志记录选择严重性。