使用組態覆寫值進行記錄
在某些情況下,您可能需要使用組合體覆寫值,在啟動期間擷取元件的記錄。
舉例來說,如果您想擷取元件 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
。您可以使用任何有意義的 ID 做為這個欄位的值。 - 鍵
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
。
另請參閱:選擇記錄項目的嚴重性。