#log-file #logger #buffered #time #docs #rotate #implemetation

bin+lib buffered_logger

为 crate log 实现的文件日志记录器

3 个稳定版本

1.2.0 2022年2月10日
1.1.0 2021年12月28日
1.0.0 2021年12月17日

#13 in #rotate

MIT 许可证

14KB
249 代码行,不包括注释

buffered_logger

Crates.io Documentation

为 crate log 实现的文件日志记录器。


lib.rs:

buffered_logger

这是一个为 crate log 实现的文件日志记录器。它提供了一个缓冲区来临时保存日志内容,而不是每次写入文件。当缓冲区大小超过最大缓冲区大小时,它将缓冲区写入当前日志文件。当当前日志文件大小超过最大文件大小时,日志文件将进行轮转。它使用 crate flate2 来压缩轮转文件。它使用 crate crossbeam-channel 进行多线程。

用法

use buffered_logger::Logger;

// Initialize the logger and start the service.
let logger = Logger::init(log::Level::Trace, "logs/m.log".to_string(), 10, 1024, 1024 * 5, true).unwrap();
logger.start();

// Now you can start logging.
log::info!("this is an info message");
log::debug!("this is a debug message");

// Logger is clonable. This is useful for passing it to a different thread.
let logger_clone = logger.clone();

// You can manually write the buffer to current log file. eg. run it every second.
logger_clone.flush();

// You can manually rotate the log file. eg. run it every day at 00:00.
logger_clone.rotate();

依赖项

~3.5–5MB
~83K SLoC