登录 Rust

本文档介绍了如何开始在 Android Studio 中 紫红色。有关记录和查看日志的一般信息,请参阅 与语言无关的日志记录文档

所需功能

请确保您的组件通过 在组件清单中添加以下内容:

{
  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
}

标准视频流

Rust 宏(例如 println!eprintln! 等)映射到标准输出 (stdout) 和标准错误 (stderr)。使用这些直播可能需要进行额外的设置 适合您的计划。

如需了解详情,请参阅标准视频流部分。 与语言无关的日志记录文档。