Skip to content

Commit eb9dbd2

Browse files
h-michaeltomhoule
authored andcommitted
Add env_logger to cli
1 parent 0d5678c commit eb9dbd2

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

graphql_client_cli/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ serde = "1.0"
1919
serde_derive = "1.0"
2020
serde_json = "1.0"
2121
syn = "0.15"
22+
log = "0.4.0"
23+
env_logger = "0.6.0"
2224

2325
rustfmt-nightly = { version = "0.99" , optional = true }
2426

graphql_client_cli/src/main.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
extern crate env_logger;
2+
extern crate log;
3+
use env_logger::fmt::{Color, Style, StyledValue};
4+
use log::Level;
5+
16
extern crate failure;
27
extern crate reqwest;
38
extern crate structopt;
@@ -70,6 +75,8 @@ enum Cli {
7075
}
7176

7277
fn main() -> Result<(), failure::Error> {
78+
set_env_logger();
79+
7380
let cli = Cli::from_args();
7481
match cli {
7582
Cli::IntrospectSchema {
@@ -100,3 +107,38 @@ fn main() -> Result<(), failure::Error> {
100107
),
101108
}
102109
}
110+
111+
fn set_env_logger() {
112+
use std::io::Write;
113+
114+
env_logger::Builder::from_default_env()
115+
.format(|f, record| {
116+
let mut style = f.style();
117+
let level = colored_level(&mut style, record.level());
118+
let mut style = f.style();
119+
let file = style.set_bold(true).value("file");
120+
let mut style = f.style();
121+
let module = style.set_bold(true).value("module");
122+
writeln!(
123+
f,
124+
"{} {}: {} {}: {}\n{}",
125+
level,
126+
file,
127+
record.file().unwrap(),
128+
module,
129+
record.target(),
130+
record.args()
131+
)
132+
})
133+
.init();
134+
}
135+
136+
fn colored_level<'a>(style: &'a mut Style, level: Level) -> StyledValue<'a, &'static str> {
137+
match level {
138+
Level::Trace => style.set_color(Color::Magenta).value("TRACE"),
139+
Level::Debug => style.set_color(Color::Blue).value("DEBUG"),
140+
Level::Info => style.set_color(Color::Green).value("INFO "),
141+
Level::Warn => style.set_color(Color::Yellow).value("WARN "),
142+
Level::Error => style.set_color(Color::Red).value("ERROR"),
143+
}
144+
}

0 commit comments

Comments
 (0)