4个版本
0.3.3 | 2022年8月30日 |
---|---|
0.3.2 | 2022年8月30日 |
0.3.1 | 2022年4月15日 |
0.3.0 | 2022年4月15日 |
#21 in #env-logger
19KB
187 行
clap_logger
lib.rs
:
Clap Logger
为[clap][clap]提供简单的[env_logger][env_logger]集成。
此库提供了一个简单的方法,允许用户通过命令行参数设置日志级别。它在clap中直接实现,因此感觉非常自然。
请注意,此crate不支持clap_derive
,并且在近期或将来可能永远不会支持它,因为与它的集成非常困难。
特性
- 命令行参数设置日志级别
- 参数可以修改
- 可选:通过环境变量设置日志级别
- 直接嵌入到
clap::Command
和clap::ArgMatches
状态:Beta
完成
- 特性完整(但欢迎建议)
- 无panic
待办事项
- 等待反馈
- 更多测试
- 完整的文档
- 更多示例
待办事项列表
- 确定是否可能支持
clap_derive
添加参数
基本实现
use clap::Command;
use log::LevelFilter;
use clap_logger::{ClapInitLogger, ClapLoglevelArg};
// Generate a clap command
let m: clap::ArgMatches = Command::new("clap_command_test")
// add loglevel argument
.add_loglevel_arg(LevelFilter::Info)
.get_matches();
日志级别参数操作
您也可以直接获取Arg以在添加之前修改它:
use clap::{arg, Arg, Command};
use log::LevelFilter;
use clap_logger::{ClapInitLogger, get_loglevel_arg};
// Generate a clap command
let m: clap::ArgMatches = Command::new("clap_command_test")
// add the add loglevel argument
.arg(get_loglevel_arg(LevelFilter::Info)
// Adding a short version
.short('l')
// changing the long version of the argument just because I can
.long("custom-loglevel")
.default_value("INFO")
)
.get_matches();
警告:请勿触摸参数的.possible_values
、.id
字段或修改输入的任何内容。
初始化记录器
基本实现
use clap::Command;
use log::LevelFilter;
use clap_logger::{ClapInitLogger, ClapLoglevelArg};
let m: clap::ArgMatches = Command::new("clap_command_test")
// add the loglevel argument
.add_loglevel_arg(LevelFilter::Info)
.get_matches();
m.init_logger().expect("Failed to initialize logger");
依赖项
~4–14MB
~138K SLoC