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

Download history 691/week @ 2024-03-13 739/week @ 2024-03-20 751/week @ 2024-03-27 662/week @ 2024-04-03 616/week @ 2024-04-10 553/week @ 2024-04-17 804/week @ 2024-04-24 814/week @ 2024-05-01 702/week @ 2024-05-08 685/week @ 2024-05-15 503/week @ 2024-05-22 722/week @ 2024-05-29 555/week @ 2024-06-05 768/week @ 2024-06-12 747/week @ 2024-06-19 625/week @ 2024-06-26

每月下载量 2,780
17 个 Crates (14 个直接使用) 使用

使用 MIT 许可证

15KB
200

MIT Latest Version docs Chat on Miaou

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