#logging #log #logger

rf_logger

log实现的一个可以记录到轮转文件的日志记录器

1 个不稳定版本

0.2.0 2023年11月10日

#572 in 调试

MIT许可证

11KB
206 代码行

rf_logger

实现了一个可以记录到stdout/stderr和轮转文件的记录器

用法

在库中

rf_logger在用于可执行文件(二进制项目)时很有意义。库应该使用log包。

在可执行文件中

它必须与log一起添加到项目依赖中

[dependencies]
log = "0.4.0"
chrono = "0.4.31"
rf_logger = "0.2.0"

rf_logger必须在项目中最早初始化。初始化后,您可以使用log宏进行实际记录。

格式化

可以通过Builder::time_fmt()设置时间格式字符串,其他部分是固定的。

let _ = writeln!(
	buf,
	"{} - {} - {}",
	now.format(&self.time_fmt),
	record.level(),
	record.args()
);

示例

use log::{LevelFilter, info};
use rf_logger;

rf_logger::Builder::new()
	.max_level(LevelFilter::Debug)
	.stdout()
	.rotated_file("tests/demo.log", 5 * 1024, 3)
	.init();

注意

在处理每个日志记录时,都会有一个互斥锁,如果性能是您关心的,这个crate可能不是好的选择。

依赖项

~1.5MB
~20K SLoC