diff options
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 56 |
1 files changed, 23 insertions, 33 deletions
diff --git a/cli/main.rs b/cli/main.rs index d6b74d8a2..574ba9ed2 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -91,8 +91,6 @@ use flags::Flags; use futures::future::FutureExt; use futures::Future; use log::Level; -use log::Metadata; -use log::Record; use state::exit_unstable; use std::env; use std::io::Read; @@ -104,35 +102,6 @@ use std::sync::Arc; use upgrade::upgrade_command; use url::Url; -static LOGGER: Logger = Logger; - -// TODO(ry) Switch to env_logger or other standard crate. -struct Logger; - -impl log::Log for Logger { - fn enabled(&self, metadata: &Metadata) -> bool { - metadata.level() <= log::max_level() - } - - fn log(&self, record: &Record) { - if self.enabled(record.metadata()) { - let mut target = record.target().to_string(); - - if let Some(line_no) = record.line() { - target.push_str(":"); - target.push_str(&line_no.to_string()); - } - - if record.level() >= Level::Info { - eprintln!("{}", record.args()); - } else { - eprintln!("{} RS - {} - {}", record.level(), target, record.args()); - } - } - } - fn flush(&self) {} -} - fn write_to_stdout_ignore_sigpipe(bytes: &[u8]) -> Result<(), std::io::Error> { use std::io::ErrorKind; @@ -705,7 +674,6 @@ pub fn main() { #[cfg(windows)] colors::enable_ansi(); // For Windows 10 - log::set_logger(&LOGGER).unwrap(); let args: Vec<String> = env::args().collect(); let flags = flags::flags_from_vec(args); @@ -737,7 +705,29 @@ pub fn main() { Some(level) => level, None => Level::Info, // Default log level }; - log::set_max_level(log_level.to_level_filter()); + env_logger::Builder::from_env( + env_logger::Env::default() + .default_filter_or(log_level.to_level_filter().to_string()), + ) + .format(|buf, record| { + let mut target = record.target().to_string(); + if let Some(line_no) = record.line() { + target.push_str(":"); + target.push_str(&line_no.to_string()); + } + if record.level() >= Level::Info { + writeln!(buf, "{}", record.args()) + } else { + writeln!( + buf, + "{} RS - {} - {}", + record.level(), + target, + record.args() + ) + } + }) + .init(); let fut = match flags.clone().subcommand { DenoSubcommand::Bundle { |