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 在 过程宏
84 每月下载量
在 6 crates 中使用
29KB
775 行
wd_log: 一个实用的Rust日志库
这是一个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,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交用于工作内容中的任何贡献,应双许可如上所述,无需额外条款或条件。
依赖关系
~1–1.8MB
~31K SLoC