Skip to content

Commit f41e6a2

Browse files
author
Steve Lee (POWERSHELL HE/HIM) (from Dev Box)
committed
Add tracing to registry resource
1 parent 097350b commit f41e6a2

File tree

3 files changed

+232
-10
lines changed

3 files changed

+232
-10
lines changed

registry/Cargo.lock

Lines changed: 197 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

registry/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ schemars = "0.8.0"
2121
serde = "1.0.130"
2222
serde_json = "1.0.68"
2323
thiserror = "1.0.30"
24+
tracing = { version = "0.1.37" }
25+
tracing-subscriber = { version = "0.3.17", features = ["ansi", "env-filter", "json"] }
2426
utfx = "0.1.0"
2527

2628
[build-dependencies]

registry/src/main.rs

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ use clap::Parser;
1111
use registry_helper::RegistryHelper;
1212
use schemars::schema_for;
1313
use std::process::exit;
14+
use tracing::{debug, error};
15+
use tracing_subscriber::{EnvFilter, Layer, prelude::__tracing_subscriber_SubscriberExt};
1416

1517
use crate::config::Registry;
1618

@@ -28,27 +30,29 @@ fn main() {
2830
#[cfg(debug_assertions)]
2931
check_debug();
3032

33+
enable_tracing();
34+
3135
let args = Arguments::parse();
3236
match args.subcommand {
3337
args::SubCommand::Query { key_path, value_name, recurse } => {
34-
eprintln!("Get key_path: {key_path}, value_name: {value_name:?}, recurse: {recurse}");
38+
debug!("Get key_path: {key_path}, value_name: {value_name:?}, recurse: {recurse}");
3539
},
3640
args::SubCommand::Set { key_path, value } => {
37-
eprintln!("Set key_path: {key_path}, value: {value}");
41+
debug!("Set key_path: {key_path}, value: {value}");
3842
},
3943
args::SubCommand::Remove { key_path, value_name, recurse } => {
40-
eprintln!("Remove key_path: {key_path}, value_name: {value_name:?}, recurse: {recurse}");
44+
debug!("Remove key_path: {key_path}, value_name: {value_name:?}, recurse: {recurse}");
4145
},
4246
args::SubCommand::Find { key_path, find, recurse, keys_only, values_only } => {
43-
eprintln!("Find key_path: {key_path}, find: {find}, recurse: {recurse:?}, keys_only: {keys_only:?}, values_only: {values_only:?}");
47+
debug!("Find key_path: {key_path}, find: {find}, recurse: {recurse:?}, keys_only: {keys_only:?}, values_only: {values_only:?}");
4448
},
4549
args::SubCommand::Config { subcommand } => {
4650
match subcommand {
4751
args::ConfigSubCommand::Get{input} => {
4852
let reg_helper = match RegistryHelper::new(&input) {
4953
Ok(reg_helper) => reg_helper,
5054
Err(err) => {
51-
eprintln!("Error: {err}");
55+
error!("{err}");
5256
exit(EXIT_INVALID_INPUT);
5357
}
5458
};
@@ -58,7 +62,7 @@ fn main() {
5862
println!("{json}");
5963
},
6064
Err(err) => {
61-
eprintln!("Error: {err}");
65+
error!("{err}");
6266
exit(EXIT_REGISTRY_ERROR);
6367
}
6468
}
@@ -67,7 +71,7 @@ fn main() {
6771
let mut reg_helper = match RegistryHelper::new(&input) {
6872
Ok(reg_helper) => reg_helper,
6973
Err(err) => {
70-
eprintln!("Error: {err}");
74+
error!("{err}");
7175
exit(EXIT_INVALID_INPUT);
7276
}
7377
};
@@ -82,7 +86,7 @@ fn main() {
8286
}
8387
},
8488
Err(err) => {
85-
eprintln!("Error: {err}");
89+
error!("{err}");
8690
exit(EXIT_REGISTRY_ERROR);
8791
}
8892
}
@@ -91,14 +95,14 @@ fn main() {
9195
let reg_helper = match RegistryHelper::new(&input) {
9296
Ok(reg_helper) => reg_helper,
9397
Err(err) => {
94-
eprintln!("Error: {err}");
98+
error!("{err}");
9599
exit(EXIT_INVALID_INPUT);
96100
}
97101
};
98102
match reg_helper.remove() {
99103
Ok(()) => {},
100104
Err(err) => {
101-
eprintln!("Error: {err}");
105+
error!("{err}");
102106
exit(EXIT_REGISTRY_ERROR);
103107
}
104108
}
@@ -115,6 +119,25 @@ fn main() {
115119
exit(EXIT_SUCCESS);
116120
}
117121

122+
pub fn enable_tracing() {
123+
let filter = EnvFilter::try_from_default_env()
124+
.or_else(|_| EnvFilter::try_new("trace"))
125+
.unwrap_or_default();
126+
let layer = tracing_subscriber::fmt::Layer::default().with_writer(std::io::stderr);
127+
let fmt = layer
128+
.with_ansi(false)
129+
.with_level(true)
130+
.with_line_number(true)
131+
.json()
132+
.boxed();
133+
134+
let subscriber = tracing_subscriber::Registry::default().with(fmt).with(filter);
135+
136+
if tracing::subscriber::set_global_default(subscriber).is_err() {
137+
eprintln!("Unable to set global default tracing subscriber. Tracing is diabled.");
138+
}
139+
}
140+
118141
#[cfg(debug_assertions)]
119142
fn check_debug() {
120143
if env::var("DEBUG_REGISTRY").is_ok() {

0 commit comments

Comments
 (0)