|
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