#logging #log #logger

fern_colored

简单、高效的日志记录(支持真彩色)

1个不稳定版本

0.6.1 2020年11月22日

#526 in 调试

Download history 10/week @ 2024-01-08 15/week @ 2024-01-15 2/week @ 2024-01-22 7/week @ 2024-01-29 22/week @ 2024-02-05 23/week @ 2024-02-19 25/week @ 2024-02-26 13/week @ 2024-03-04 13/week @ 2024-03-11 14/week @ 2024-03-18

69 每月下载量
用于 menyoki

MIT 许可证

300KB
1.5K SLoC

fern

Linux Build Status Windows Build Status Coverage Status

简单、高效的Rust日志记录。


日志配置是递归分支的,就像蕨类植物一样:格式化、过滤器、输出可以递归地应用于越来越具体的日志类型。Fern为rust的标准的log crate提供基于构建器的配置支持。

//! With fern, we can:

// Configure logger at runtime
fern::Dispatch::new()
    // Perform allocation-free log formatting
    .format(|out, message, record| {
        out.finish(format_args!(
            "{}[{}][{}] {}",
            chrono::Local::now().format("[%Y-%m-%d][%H:%M:%S]"),
            record.target(),
            record.level(),
            message
        ))
    })
    // Add blanket level filter -
    .level(log::LevelFilter::Debug)
    // - and per-module overrides
    .level_for("hyper", log::LevelFilter::Info)
    // Output to stdout, files, and other Dispatch configurations
    .chain(std::io::stdout())
    .chain(fern::log_file("output.log")?)
    // Apply globally
    .apply()?;

// and log using log crate macros!
info!("hello, world!");

所有功能的示例在api文档中。查看使用此示例命令行程序中的Fern。


项目状态

Fern项目主要由我在GitHub上的用户名@daboross维护。这是一个爱好项目,但我会努力保持其高质量。

贡献

由于这是一个爱好项目,因此欢迎贡献!

目前,您最容易的贡献方式是使用Fern于您的应用程序中,并查看其不足之处。当前的库有一个坚实的基础,但它缺少功能,我可能无法预见您的用例。

如果您有Fern没有覆盖到的用例,请提交问题。这对于我、想要为项目做出贡献的人,以及如果实现了这个功能,对您来说都是非常有用的。

如果您有兴趣帮助修复现有问题或您刚刚提交的问题,我们将非常感谢您的帮助。

有关贡献的详细信息,请参阅CONTRIBUTING

依赖关系

~0–10MB
~73K SLoC