summaryrefslogtreecommitdiffstats
path: root/tedge/src/logging.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tedge/src/logging.rs')
-rw-r--r--tedge/src/logging.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/tedge/src/logging.rs b/tedge/src/logging.rs
index a2d60e76..ff4de8f0 100644
--- a/tedge/src/logging.rs
+++ b/tedge/src/logging.rs
@@ -1,3 +1,4 @@
+use std::ops::Not;
use std::path::PathBuf;
use tracing_subscriber::filter::EnvFilter;
@@ -11,6 +12,7 @@ pub fn setup_logging(
spec: Option<LoggingSpec>,
chrome_logging: Option<&PathBuf>,
tracy_logging: bool,
+ tree_logging: bool,
) -> miette::Result<LogGuard> {
let env_filter = match spec {
None => {
@@ -60,13 +62,19 @@ pub fn setup_logging(
.unwrap_or_default();
let opt_tracy_layer = tracy_logging.then(tracing_tracy::TracyLayer::new);
-
- let stdout_log = env_filter.map(|f| tracing_subscriber::fmt::layer().with_filter(f));
+ let opt_tree_layer = {
+ let indent_size = 4;
+ tree_logging.then(|| tracing_tree::HierarchicalLayer::new(indent_size))
+ };
+ let opt_stdout_log = tree_logging
+ .not()
+ .then(|| env_filter.map(|f| tracing_subscriber::fmt::layer().with_filter(f)));
let subscriber = tracing_subscriber::registry::Registry::default()
.with(opt_chrome_layer)
.with(opt_tracy_layer)
- .with(stdout_log);
+ .with(opt_tree_layer)
+ .with(opt_stdout_log);
tracing::subscriber::set_global_default(subscriber)
.map_err(|e| miette::miette!("Failed to set global subscriber: {:?}", e))?;