Rust 日志系统实践总结

本文总结了Rust项目中使用env_logger和fern进行日志管理的经验,包括如何配置输出本地时间、添加行号和文件名、日志级别对齐、颜色以及过滤条件。还探讨了动态过滤信息和提高日志性能的方法。
摘要由CSDN通过智能技术生成

文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录)

(上次更新:2018-12-20 新增【日志颜色】)基于log、env_logger、fern等的使用总结,详细配置建议参考官方说明

给工程添加第三方日志库依赖

给Cargo.toml文件加上如下配置,log基本为Rust项目日志需求的标配库,env_logger提供了具体实现,类似策略模式:log定义操作,env_logger实现具体行为,很方便切换另一个实现了log所定义接口的库,比如daboross/fern

[dependencies]
log = "0.4.0"
env_logger = "0.6.0"
复制代码

env_log配置

下面描述我们项目对env_log所作的配置。问题:修改format导致终端执行时日志无颜色。

配置输出时间为本地时间

env_logger默认用0时区,而北京是东8区,每次日志输出都少8小时,时间没对上不方便分析日志。0时区举个例子:

INFO 2018-11-18T02:00:08Z: webgpu-native::registry: env_logger initialized.
复制代码

下面给出env_logger输出本地时间的示例代码,参考了DCjanus/nabu,他用flexi_logger,略调整即可用于env_logger。加上更多自定义信息的关键是修改writeln! 宏。

#[macro_use]
extern crate log;
extern crate chrono;
extern crate env_logger;

fn init_log() {
    use chrono::Local;
    use std::io::Write;

    let env = env_logger::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值