1个不稳定版本
0.6.1 | 2020年11月22日 |
---|
#526 in 调试
69 每月下载量
用于 menyoki
300KB
1.5K SLoC
fern
简单、高效的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