2个不稳定版本
0.2.0 | 2021年9月15日 |
---|---|
0.1.0 | 2021年9月14日 |
#826 in 调试
14KB
242 行
Moe Logger
(>ω<) 基于 pretty-env-logger 和 env_logger 的另一个日志记录器。允许以格式化、文件轮转等功能将日志写入文件。
用法
将以下行添加到 Cargo.toml
log = "0.4"
moe_logger = "0.2"
有一个示例
use log::{info, warn, error, debug};
use moe_logger::LogConfig;
fn main() {
let log_config = LogConfig::builder()
.env("MOE_LOG_LEVEL")
.output("run.log")
.format("{t} {L} {T} > {M}\n")
.rotation(10000)
.finish();
moe_logger::init(log_config);
info!("Di di ba ba wu~");
debug!("Debug...");
warn!("WARNING!");
error!("Oops >_<");
}
功能
(^ω^) 下面是一些关于提供的功能的说明。
输出
如果您指定了存储日志的路径,Moe Logger将在此路径上写入格式化日志,同时在同时将非格式化日志写入stdout。
(;>△<) 如果日志文件存在,Moe Logger将仅使用stdout!因此,在运行之前将旧日志移动到另一个位置。
格式
我们使用TinyTemplate来格式化写入文件的日志内容。如果您对更复杂的日志感兴趣,您可能应该查看其文档。Moe Logger提供了以下变量:
- t - RFC3339 日期和时间
- L - 日志级别
- T - 日志目标
- M - 日志消息
- F - 文件名
默认格式:{L} {T} > {M}\n
(;>△<) 不要忘记 \n
轮转
您可以在写入多少行后指定,Moe Logger将将其重命名如 output.log.x
。默认为0表示禁用。
性能
(。・`ω´・)ノ 将日志写入磁盘会降低您代码的效率。但我们始终在尝试优化这个问题。如果您有任何想法,欢迎提交pull requests和issues。
下表显示了启用不同功能时的性能差异。(在我的PC上运行actix-web后端)
功能 | 每秒请求数 |
---|---|
无日志 | ~16000 |
仅输出到stdout | ~15000 |
stdout & 文件 | ~5600 |
stdout & 文件(带轮转) | ~5200 |
许可证
Moe Logger在Apache-2.0和MIT许可证的条款下分发。
依赖项
~7-18MB
~218K SLoC