我有以下代码,适用于我的 rust 应用程序,将日志写入 stdout 和滚动 json 文件。
let appender = tracing_appender::rolling::hourly(app_log_path.clone(), "application.log");
let (non_blocking, _guard) = tracing_appender::non_blocking(appender);
let subscriber = tracing_subscriber::registry()
.with(fmt::Layer::new().with_writer(std::io::stdout).pretty())
.with(fmt::Layer::new().with_writer(non_blocking).json());
tracing::subscriber::set_global_default(subscriber).expect("Unable to set a global collector");
Run Code Online (Sandbox Code Playgroud)
这有效,但会记录所有日志记录级别,包括详细跟踪日志记录。我想将日志限制为仅信息级别,但不知道如何做到这一点。
从跟踪文档来看,它说要做:
fmt()
.with_max_level(Level::DEBUG)
.init();
Run Code Online (Sandbox Code Playgroud)
但是,我在上面的代码中找不到任何可以添加.with_max_level()
函数调用的地方。我尝试放置的每个地方都给出了不同的特征违规。例如
the following trait bounds were not satisfied:
`tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriter<'_>`
which is required by `tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriterExt`
`&tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriter<'_>`
which is required by `&tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriterExt`
`&mut tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriter<'_>`
which is required by `&mut tracing_subscriber::fmt::Layer<_, Pretty, Format<Pretty>, fn() -> std::io::Stdout {std::io::stdout}>: MakeWriterExt`
Run Code Online (Sandbox Code Playgroud)
.with_max_level()
Trait提供了一种方法MakeWriterExt
。它应该被称为作家制作者,在你的例子中是stdout
和non_blocking
。
use tracing_subscriber::fmt::writer::MakeWriterExt;
// or
// tracing_subscriber::prelude::*;
let subscriber = tracing_subscriber::registry()
.with(fmt::Layer::new().with_writer(std::io::stdout.with_max_level(Level::INFO)).pretty())
.with(fmt::Layer::new().with_writer(non_blocking.with_max_level(Level::INFO)).json());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1341 次 |
最近记录: |