3 个稳定版本
1.2.0 | 2022年2月10日 |
---|---|
1.1.0 | 2021年12月28日 |
1.0.0 | 2021年12月17日 |
#13 in #rotate
14KB
249 代码行,不包括注释
buffered_logger
为 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