rust修改默认的trace策略

Fri, December 20, 2024 -

背景

在rust中,默认的trace策略是将日志输出到标准输出并且没有大小的限制。
但是在实际的生产环境中,我们需要将日志输出到文件中,并且限制文件的大小,每天输出一个新的文件。

实现

查询了trace的文档,发现只能对输出的周期进行控制,不能对输出的大小进行控制。
tracing_appender rolling

use tracing_appender::rolling::Rotation;
let rotation = tracing_appender::rolling::Rotation::DAILY;

查找官方文档发现之前有人做过相关的功能,但是crate并没有相关的接口。 最后找到另外一个crate,解决问题。

Crate rolling_file

let file_appender = BasicRollingFileAppender::new(
    "/var/log/myprogram",
    RollingConditionBasic::new().daily(),
    9
).unwrap();
let (non_blocking_appender, _guard) = non_blocking(file_appender);

问题解决。