|
18 | 18 | use crate::metadata::now_unix_timestamp;
|
19 | 19 | use env_logger::fmt::Color;
|
20 | 20 | use env_logger::Target::Stdout;
|
| 21 | +use env_logger::DEFAULT_FILTER_ENV; |
21 | 22 | use log::Level;
|
22 | 23 | use log::LevelFilter::{Debug, Info, Trace};
|
23 | 24 | use serde::{Deserialize, Serialize};
|
24 | 25 | use std::cell::RefCell;
|
| 26 | +use std::env; |
25 | 27 | use std::io::Write;
|
26 | 28 | use std::ops::Deref;
|
27 | 29 | use Color::{Blue, Cyan, Green, Red, Yellow};
|
@@ -74,34 +76,38 @@ impl Logger {
|
74 | 76 | }
|
75 | 77 | match output_type {
|
76 | 78 | OutputType::Logger => {
|
77 |
| - let mut filter = match debug { |
78 |
| - true => Debug, |
79 |
| - false => Info, |
80 |
| - }; |
81 |
| - if trace { |
82 |
| - filter = Trace |
| 79 | + if env::var(DEFAULT_FILTER_ENV).unwrap_or_default().is_empty() { |
| 80 | + let mut filter = match debug { |
| 81 | + true => Debug, |
| 82 | + false => Info, |
| 83 | + }; |
| 84 | + if trace { |
| 85 | + filter = Trace |
| 86 | + } |
| 87 | + env_logger::Builder::new() |
| 88 | + .filter_module(env!("CARGO_CRATE_NAME"), filter) |
| 89 | + .target(Stdout) |
| 90 | + .format(|buf, record| { |
| 91 | + let mut level_style = buf.style(); |
| 92 | + match record.level() { |
| 93 | + Level::Trace => level_style.set_color(Cyan), |
| 94 | + Level::Debug => level_style.set_color(Blue), |
| 95 | + Level::Info => level_style.set_color(Green), |
| 96 | + Level::Warn => level_style.set_color(Yellow), |
| 97 | + Level::Error => level_style.set_color(Red).set_bold(true), |
| 98 | + }; |
| 99 | + writeln!( |
| 100 | + buf, |
| 101 | + "{}\t{}", |
| 102 | + level_style.value(record.level()), |
| 103 | + record.args() |
| 104 | + ) |
| 105 | + }) |
| 106 | + .try_init() |
| 107 | + .unwrap_or_default(); |
| 108 | + } else { |
| 109 | + env_logger::try_init().unwrap_or_default(); |
83 | 110 | }
|
84 |
| - env_logger::Builder::new() |
85 |
| - .filter_module(env!("CARGO_CRATE_NAME"), filter) |
86 |
| - .target(Stdout) |
87 |
| - .format(|buf, record| { |
88 |
| - let mut level_style = buf.style(); |
89 |
| - match record.level() { |
90 |
| - Level::Trace => level_style.set_color(Cyan), |
91 |
| - Level::Debug => level_style.set_color(Blue), |
92 |
| - Level::Info => level_style.set_color(Green), |
93 |
| - Level::Warn => level_style.set_color(Yellow), |
94 |
| - Level::Error => level_style.set_color(Red).set_bold(true), |
95 |
| - }; |
96 |
| - writeln!( |
97 |
| - buf, |
98 |
| - "{}\t{}", |
99 |
| - level_style.value(record.level()), |
100 |
| - record.args() |
101 |
| - ) |
102 |
| - }) |
103 |
| - .try_init() |
104 |
| - .unwrap_or_default(); |
105 | 111 | }
|
106 | 112 | _ => {
|
107 | 113 | env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
|
|
0 commit comments