|
1 | 1 | #![recursion_limit = "128"] |
2 | 2 |
|
3 | | -use log::{error, info}; |
4 | 3 | use std::path::PathBuf; |
5 | 4 | use svd_parser::svd; |
| 5 | +use tracing::{error, info}; |
6 | 6 |
|
7 | 7 | mod generate; |
8 | 8 | mod util; |
@@ -90,10 +90,9 @@ fn run() -> Result<()> { |
90 | 90 | .short("l") |
91 | 91 | .help(&format!( |
92 | 92 | "Choose which messages to log (overrides {})", |
93 | | - env_logger::DEFAULT_FILTER_ENV |
| 93 | + tracing_subscriber::EnvFilter::DEFAULT_ENV |
94 | 94 | )) |
95 | 95 | .takes_value(true) |
96 | | - .possible_values(&["off", "error", "warn", "info", "debug", "trace"]), |
97 | 96 | ) |
98 | 97 | .version(concat!( |
99 | 98 | env!("CARGO_PKG_VERSION"), |
@@ -193,29 +192,24 @@ fn run() -> Result<()> { |
193 | 192 | } |
194 | 193 |
|
195 | 194 | fn setup_logging<'a>(getter: &'a impl clap_conf::Getter<'a, String>) { |
196 | | - // * Log at info by default. |
| 195 | + // * Log at `info` by default. |
197 | 196 | // * Allow users the option of setting complex logging filters using |
198 | | - // env_logger's `RUST_LOG` environment variable. |
199 | | - // * Override both of those if the logging level is set via the `--log` |
200 | | - // command line argument. |
201 | | - let env = env_logger::Env::default().filter_or(env_logger::DEFAULT_FILTER_ENV, "info"); |
202 | | - let mut builder = env_logger::Builder::from_env(env); |
203 | | - builder.format_timestamp(None); |
204 | | - |
205 | | - let log_lvl_from_env = std::env::var_os(env_logger::DEFAULT_FILTER_ENV).is_some(); |
206 | | - |
207 | | - if log_lvl_from_env { |
208 | | - log::set_max_level(log::LevelFilter::Trace); |
209 | | - } else { |
210 | | - let level = match getter.grab().arg("log_level").conf("log_level").done() { |
211 | | - Some(lvl) => lvl.parse().unwrap(), |
212 | | - None => log::LevelFilter::Info, |
213 | | - }; |
214 | | - log::set_max_level(level); |
215 | | - builder.filter_level(level); |
216 | | - } |
| 197 | + // the `RUST_LOG` environment variable. |
| 198 | + // * Override both of those if the logging level is set via |
| 199 | + // the `log_level` config setting. |
| 200 | + |
| 201 | + let filter = match getter.grab().arg("log_level").conf("log_level").done() { |
| 202 | + Some(lvl) => tracing_subscriber::EnvFilter::from(lvl), |
| 203 | + None => tracing_subscriber::EnvFilter::from_default_env() |
| 204 | + .add_directive(tracing::Level::INFO.into()), |
| 205 | + }; |
217 | 206 |
|
218 | | - builder.init(); |
| 207 | + tracing_subscriber::fmt() |
| 208 | + .without_time() |
| 209 | + .with_target(true) |
| 210 | + .with_env_filter(filter) |
| 211 | + .with_ansi(true) |
| 212 | + .init(); |
219 | 213 | } |
220 | 214 |
|
221 | 215 | fn main() { |
|
0 commit comments