5 个版本 (稳定版)
2.0.0 | 2021年5月21日 |
---|---|
1.2.0 | 2021年3月4日 |
1.1.0 | 2021年2月23日 |
1.0.0 | 2021年2月19日 |
0.1.0 | 2020年12月31日 |
在 配置 中排名 #338
每月下载量 2,780
被 17 个 Crates (14 个直接使用) 使用
15KB
200 行
cli-log
这是一个用于具有由环境变量指定的级别的文件日志的样板代码,并提供根据相关日志级别记录执行持续时间的功能。
这对于终端应用程序特别方便,因为你不想将日志与 stdout 或 stderr 混合。
使用环境变量可以使应用程序分发,并让用户在不重新编译或配置的情况下生成一些日志。
日志文件名和环境变量名由应用程序的名称计算得出。
因此,日志初始化就是
use cli_log::*; // also import logging macros
init_cli_log!();
如果你不想在所有日志和 cli-log 日志宏中声明 cli_log 导入,你可以在 main.rs 文件中使用旧的 #[macro_use]
导入
#[macro_use] extern crate cli_log;
init_cli_log!();
使用 "mem"
功能(默认启用),当操作系统兼容(类似于 Unix)时,你可以使用 log_mem
函数转储当前和峰值内存使用量。
这里有一个使用 cli-log 的完整应用程序示例(可以在 examples 中找到)
use cli_log::*;
#[derive(Debug)]
struct AppData {
count: usize,
}
impl AppData {
fn compute(&mut self) {
self.count += 7;
}
}
fn main() {
init_cli_log!();
let mut app_data = AppData { count: 35 };
time!(Debug, app_data.compute());
info!("count is {}", app_data.count);
debug!("data: {:#?}", &app_data);
warn!("this application does nothing");
log_mem(Level::Info);
info!("bye");
}
如果你没有设置任何 SMALL_APP_LOG
环境变量,则不会有任何日志。
设置环境变量的方便方法是
SMALL_APP_LOG=debug small_app
或者,在开发期间,
SMALL_APP_LOG=debug cargo run
这会创建一个 small_app.log
文件,其中包含级别、应用程序版本等信息,当然还有你使用时间精确到毫秒的日志操作(模块目标)
21:03:24.081 [INFO] cli_log::init: Starting small-app v1.0.1 with log level DEBUG
21:03:24.081 [DEBUG] small_app: app_data.compute() took 312ns
21:03:24.081 [INFO] small_app: count is 42
21:03:24.081 [DEBUG] small_app: data: AppData {
count: 42,
}
21:03:24.081 [WARN] small_app: this application does nothing
21:03:24.081 [INFO] cli_log::mem: Physical mem usage: current=938K, peak=3.3M
21:03:24.082 [INFO] small_app: bye
依赖关系
~1–1.4MB
~22K SLoC