tracing = "0.1.40" tracing-appender = "0.2.3" tracing-subscriber = { version = "0.3.18", features = ["json"] } # 需要输出格式为json时,需要启用json feature
2、使用
2.1 自定义RollingFile
1 2 3 4 5 6 7
let file_appender = RollingFileAppender::builder() .rotation(Rotation::DAILY) .filename_prefix("rust") .filename_suffix(".log") .max_log_files(5) .build("logs") .expect("failed to initialize rolling file appender");
2.2 自定义format
1 2 3 4 5
let format = fmt::format() .with_target(false) .with_line_number(true) .with_thread_names(true) .compact();
use tracing::{info, span, Level}; use tracing_appender::rolling::{RollingFileAppender, Rotation}; use tracing_subscriber::fmt::writer::MakeWriterExt; use tracing_subscriber::fmt;
#[tracing::instrument] fnsay_number(number: usize) { info!("number is {}", number);
}
fnmain() { letfile_appender = RollingFileAppender::builder() .rotation(Rotation::DAILY) .filename_prefix("rust") .filename_suffix(".log") .max_log_files(5) .build("logs") .expect("failed to initialize rolling file appender");
let (file, _guard) = tracing_appender::non_blocking(file_appender); let (stdout, _guard) = tracing_appender::non_blocking(std::io::stdout());