Skip to content

Commit 533718d

Browse files
committed
Add support for CARGO_BAZEL_DEBUG=TRACE level logging
1 parent e5b7c38 commit 533718d

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

crate_universe/src/cli.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ mod splice;
77
mod vendor;
88

99
use clap::Parser;
10-
use tracing::{Level, Subscriber};
10+
use tracing::Subscriber;
1111
use tracing_subscriber::fmt::format::{Format, Full};
1212
use tracing_subscriber::fmt::time::SystemTime;
1313
use tracing_subscriber::fmt::{FormatEvent, FormatFields};
1414
use tracing_subscriber::registry::LookupSpan;
1515
use tracing_subscriber::FmtSubscriber;
1616

17+
pub use tracing::Level as LogLevel;
18+
1719
pub use self::generate::GenerateOptions;
1820
pub use self::query::QueryOptions;
1921
pub use self::render::RenderOptions;
@@ -92,21 +94,17 @@ impl LoggingFormatEvent {
9294
}
9395

9496
/// Initialize logging for one of the cli options.
95-
pub fn init_logging(name: &str, verbose: bool) {
97+
pub fn init_logging(name: &str, level: LogLevel) {
9698
if !EXPECTED_LOGGER_NAMES.contains(&name) {
9799
panic!(
98100
"Unexpected logger name {}, use of one of {:?}",
99101
name, EXPECTED_LOGGER_NAMES
100102
);
101103
}
102104

103-
// a builder for `FmtSubscriber`.
104105
let subscriber = FmtSubscriber::builder()
105-
// all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.)
106-
// will be written to stdout.
107-
.with_max_level(if verbose { Level::DEBUG } else { Level::INFO })
106+
.with_max_level(level)
108107
.event_format(LoggingFormatEvent::new(name))
109-
// completes the builder.
110108
.finish();
111109

112110
tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed");

crate_universe/src/main.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,36 @@ fn main() -> cli::Result<()> {
66
// Parse arguments
77
let opt = cli::parse_args();
88

9-
let verbose_logging = std::env::var("CARGO_BAZEL_DEBUG").is_ok();
9+
let level = match std::env::var("CARGO_BAZEL_DEBUG") {
10+
Ok(var) => {
11+
if var == "TRACE" {
12+
crate::cli::LogLevel::TRACE
13+
} else {
14+
crate::cli::LogLevel::DEBUG
15+
}
16+
}
17+
Err(_) => crate::cli::LogLevel::INFO,
18+
};
1019

1120
match opt {
1221
cli::Options::Generate(opt) => {
13-
cli::init_logging("Generate", verbose_logging);
22+
cli::init_logging("Generate", level);
1423
cli::generate(opt)
1524
}
1625
cli::Options::Splice(opt) => {
17-
cli::init_logging("Splice", verbose_logging);
26+
cli::init_logging("Splice", level);
1827
cli::splice(opt)
1928
}
2029
cli::Options::Query(opt) => {
21-
cli::init_logging("Query", verbose_logging);
30+
cli::init_logging("Query", level);
2231
cli::query(opt)
2332
}
2433
cli::Options::Vendor(opt) => {
25-
cli::init_logging("Vendor", verbose_logging);
34+
cli::init_logging("Vendor", level);
2635
cli::vendor(opt)
2736
}
2837
cli::Options::Render(opt) => {
29-
cli::init_logging("Render", verbose_logging);
38+
cli::init_logging("Render", level);
3039
cli::render(opt)
3140
}
3241
}

crate_universe/src/metadata/cargo_tree_resolver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use anyhow::{anyhow, bail, Context, Result};
99
use camino::Utf8Path;
1010
use semver::Version;
1111
use serde::{Deserialize, Serialize};
12-
use tracing::debug;
12+
use tracing::{debug, trace};
1313
use url::Url;
1414

1515
use crate::config::CrateId;
@@ -348,7 +348,7 @@ impl TreeResolver {
348348

349349
for (host_triple, target_streams) in deps_tree_streams.into_iter() {
350350
for (target_triple, stdout) in target_streams.into_iter() {
351-
debug!(
351+
trace!(
352352
"Parsing (host={}) `cargo tree --target {}` output:\n```\n{}\n```",
353353
host_triple,
354354
target_triple,

0 commit comments

Comments
 (0)