其他記錄工作流程

使用組態覆寫值進行記錄

在某些情況下,您可能需要使用組合體覆寫值,在啟動期間擷取元件的記錄。

舉例來說,如果您想擷取元件 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。您可以使用任何有意義的 ID 做為這個欄位的值。
    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

另請參閱:選擇記錄項目的嚴重性