Rust 中記錄

本文件說明如何開始在 Rust 程式中登入 紫紅色。如需記錄與查看記錄的一般資訊,請參閱 記錄語言通用的記錄說明文件

所需的能力

確保您的元件要求適當的記錄功能,方法是 包括:

{
  include: [
    "syslog/client.shard.cml"
  ],
  ...
}

初始化

您必須先初始化記錄功能,才能透過 Rust 程式碼記錄記錄。 初始化作業是由 fuchsia Crate 設定巨集處理。

GN 依附元件

將下列 deps 新增至您的 BUILD.gn 檔案:

deps = [
  "//src/lib/fuchsia",
]

設定

在 Rust 來源檔案中,任何函式都會預設啟用記錄功能 已透過 fuchsia::mainfuchsia::test 巨集初始化:

#[fuchsia::main]
fn main() {
    // ...
}

#[fuchsia::test]
fn example_test() {
    // ...
}

您也可以傳遞 logging 標記,讓此資訊明確呈現:

#[fuchsia::main(logging = true)]
fn main() {
    // ...
}

#[fuchsia::test(logging = true)]
fn example_test() {
    // ...
}

新增標記

記錄訊息可包含一或多個標記,提供額外的背景資訊。 如要為指定範圍啟用記錄標記,請在以下期間傳遞 logging_tags 參數: 初始化

#[fuchsia::main(logging_tags = ["foo", "bar"])]
fn main() {
    // ...
}

#[fuchsia::test(logging_tags = ["foo", "bar"])]
fn example_test_with_tags() {
    // ...
}

記錄記錄檔

Fuchsia 上的 Rust 程式通常會使用 tracing Crate 巨集記錄 。

GN 依附元件

tracing Crate 新增至 BUILD.gn 檔案的 deps 項目:

deps = [
  "//third_party/rust_crates:tracing",
]

記錄事件

呼叫 tracing Crate 提供的巨集,以記錄宣告的 嚴重性等級:

use tracing;

fn main() {
    tracing::trace!("something happened: {}", 5); // maps to TRACE
    tracing::debug!("something happened: {}", 4); // maps to DEBUG
    tracing::info!("something happened: {}", 3);  // maps to INFO
    tracing::warn!("something happened: {}", 2);  // maps to WARN
    tracing::error!("something happened: {}", 1); // maps to ERROR
}

標準串流

println!eprintln! 等 Rust 巨集對應至標準 (stdout) 和標準錯誤 (stderr)。如要使用這些串流,可能需要進行額外設定 執行程式

詳情請參閱「標準串流」一節。 記錄語言通用的記錄說明文件