12个不稳定版本 (4个破坏性更新)

0.4.0 2024年6月27日
0.3.0 2024年4月8日
0.2.0 2023年4月23日
0.1.8 2023年4月7日
0.0.2 2021年5月15日

#69过程宏

Download history 35/week @ 2024-04-24 1/week @ 2024-05-22 1/week @ 2024-05-29 2/week @ 2024-06-05 9/week @ 2024-06-19 148/week @ 2024-06-26 30/week @ 2024-07-03 66/week @ 2024-07-24 18/week @ 2024-07-31

84 每月下载量
6 crates 中使用

MIT/Apache

29KB
775

wd_log: 一个实用的Rust日志库

wd_log GitHub Actions wd_log on crates.io wd_log on docs.rs License

这是一个Rust日志库。日志输出主要通过宏实现。未来版本将支持日志组合输出。当前支持以下功能。

  • 可配置
  • 颜色识别
  • 输出到文件
  • 组合字段(编码)

当前版本为预览版,未来将得到改进。

入门指南

wd_log可在crates.io上找到。建议在那里查找最新发布的版本,以及最新文档构建的链接。

在最后一次更新此README时,最新发布的版本可以使用如下方式

将以下依赖项添加到您的Cargo清单...

[dependencies]
wd_log = "0.1"

示例

配置

不支持多线程设置

    //Set log level, default:Debug
    wd_log::set_level(wd_log::INFO);
    //Set the log output prefix, default:"wd_log"
    wd_log::set_prefix("WDLOG");
    //Whether to display the print time, default:true
    wd_log::show_time(false);
    //Whether to display the location, default:true
    wd_log::show_file_line(false);
    //Set output to a file, default:stdout
    wd_log::output_to_file("./log.txt").expect("file open failed");

打印

  • 默认情况下没有换行符;以'_ln'结尾的宏表示换行。
    wd_log::log_debug!("{}","hello world");
    wd_log::log_debug_ln!("{}","hello world");
    wd_log::log_info!("{}","hello world");
    wd_log::log_info_ln!("{}","hello world");
    wd_log::log_warn!("{}","hello world");
    wd_log::log_warn_ln!("{}","hello world");
    wd_log::log_error!("{}","hello world");
    wd_log::log_error_ln!("{}","hello world");
  • 允许空和格式化打印
    wd_log::log_debug!();
    wd_log::log_debug!("{} {}","hello","world");
  • panic
    //After printing, trigger panic.
    wd_log::log_panic!("{}","hello world");

结果类型处理

  • 以'res_'开头的宏可以处理结果类型
  • 如果结果是Err,打印错误并返回None
  • 如果结果是Ok(T),直接返回Some(T)
    let result = Err("hello");
    let _res:Option<()> = wd_log::res_error!(result);
    let _res:Option<()> = wd_log::res_error_ln!(result);

    let _res:Option<()> = wd_log::res_error!(result;"this is {}","error");
    let _res:Option<()> = wd_log::res_error_ln!(result;"this is {}","error");

    let result:Result<&str,&str> = Ok("world");
    let res:Option<&str> = wd_log::res_error!(result);
    assert_eq!(res,Some("world"))
  • 如果结果是Err,res_panic将在打印此错误后崩溃
  • 如果结果是Ok(T),直接返回Some(T)
        let result:Result<&str,&str> = Ok("hello");
        let res = wd_log::res_panic!(result;"succes");
        println!("{}",res);
        let result = Err("hello");
        //It can lead to panic
        let _ = wd_log::res_panic!(result;"this is {}","error");

许可证

以下任一许可证下授权:

任选其一。

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交用于工作内容中的任何贡献,应双许可如上所述,无需额外条款或条件。

依赖关系

~1–1.8MB
~31K SLoC