其他日志记录工作流

使用汇编替换项进行日志记录

在某些情况下,您可能需要使用汇编替换项来捕获组件在启动期间的日志。

例如,如果您想捕获组件 my-component-logging 的日志,请执行以下操作:

  1. 在 Fuchsia 检出目录中,创建一个 //local/BUILD.gn 文件:

    assembly_developer_overrides("netstack-overrides") {
        platform = {
            diagnostics = {
                component_log_initial_interests = [
                    {
                        component = "core/network/netstack"
                        log_severity = "debug"
                    },
                ]
            }
        }
    }
    

    BUILD.gn 文件表示以下内容:

    1. 汇编开发者替换项名为 netstack-overrides。您可以为此字段使用任何有意义的标识符。
    2. platformdiagnosticscomponent_log_initial_interests 均基于有效商品配置值的值。如需了解详情,请参阅 platform
    3. 在此示例中,您使用了组件标识名 core/network/netstack,但也可以使用组件网址 fuchsia-pkg://fuchsia.com/netstack3#meta/netstack3.cm。如需详细了解标识名,请参阅组件标识名
    4. 对于 log_severity 值,请指定要记录的最低日志严重性。例如,debug 严重级别。或者,您也可以使用 trace,其严重程度低于 debug。不过,您可以使用任何级别的日志严重级别。如需详细了解日志严重级别,请参阅为日志记录选择严重级别
  2. 创建符合要求的 //local/BUILD.gn 文件后,您可以将 fx set 命令设置为使用此汇编平台配置。例如:

    fx set --assembly-override=//local:my-component-logging
  3. 构建 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 的有效值:TRACEDEBUGINFOWARNERRORFATAL

另请参阅:为日志记录选择严重性