Skip to content

Commit

Permalink
feat: allow providing RUST_LOG, show the error chain
Browse files Browse the repository at this point in the history
  • Loading branch information
ctron committed Apr 22, 2024
1 parent 00ff751 commit d45d3c8
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 28 deletions.
74 changes: 48 additions & 26 deletions common/src/cli/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,65 @@ pub struct Logging {
/// Disable progress bar
#[arg(long, global = true)]
pub no_progress: bool,

/// Provide a RUST_LOG filter, conflicts with --verbose and --quiet
#[arg(long, global = true, conflicts_with_all(["verbose", "quiet"]), env("RUST_LOG"))]
pub log: Option<String>,
}

impl Logging {
pub fn init(self, app_modules: &[&'static str]) -> Progress {
// init logging

let mut builder = env_logger::builder();
let mut builder = Builder::new();

// remove timestamps
match self.log {
Some(log) => {
builder.parse_filters(&log);
}
None => {
// remove timestamps

if !self.log_timestamps {
builder.format(|buf, record| writeln!(buf, "{}", record.args()));
}
if !self.log_timestamps {
builder.format(|buf, record| writeln!(buf, "{}", record.args()));
}

// for app modules
let app_modules = |builder: &mut Builder, level| {
builder.filter_module("walker_common", level);
for module in app_modules {
builder.filter_module(module, level);
}
};
// for app modules
let app_modules = |builder: &mut Builder, level| {
builder.filter_module("walker_common", level);
for module in app_modules {
builder.filter_module(module, level);
}
};

// log level
// log level

match (self.quiet, self.verbose) {
(true, _) => {
builder.filter_level(LevelFilter::Off);
}
(_, 0) => app_modules(builder.filter_level(LevelFilter::Warn), LevelFilter::Info),
(_, 1) => app_modules(builder.filter_level(LevelFilter::Warn), LevelFilter::Debug),
(_, 2) => app_modules(builder.filter_level(LevelFilter::Info), LevelFilter::Debug),
(_, 3) => {
builder.filter_level(LevelFilter::Debug);
}
(_, 4) => app_modules(builder.filter_level(LevelFilter::Debug), LevelFilter::Trace),
(_, _) => {
builder.filter_level(LevelFilter::Trace);
match (self.quiet, self.verbose) {
(true, _) => {
builder.filter_level(LevelFilter::Off);
}
(_, 0) => {
builder.filter_level(LevelFilter::Warn);
}
(_, 1) => {
app_modules(builder.filter_level(LevelFilter::Warn), LevelFilter::Info)
}
(_, 2) => {
app_modules(builder.filter_level(LevelFilter::Warn), LevelFilter::Debug)
}
(_, 3) => {
app_modules(builder.filter_level(LevelFilter::Info), LevelFilter::Debug)
}
(_, 4) => {
builder.filter_level(LevelFilter::Debug);
}
(_, 5) => {
app_modules(builder.filter_level(LevelFilter::Debug), LevelFilter::Trace)
}
(_, _) => {
builder.filter_level(LevelFilter::Trace);
}
};
}
};

Expand Down
5 changes: 4 additions & 1 deletion csaf/csaf-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ impl Cli {
#[tokio::main]
async fn main() -> ExitCode {
if let Err(err) = Cli::parse().run().await {
eprintln!("{err}");
log::error!("Failed to execute: {err}");
for (n, cause) in err.chain().enumerate().skip(1) {
log::info!(" {n}: {cause}");
}
ExitCode::FAILURE
} else {
ExitCode::SUCCESS
Expand Down
2 changes: 2 additions & 0 deletions sbom/sbom-cli/src/cmd/send.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ impl Send {
.unwrap_or_default(),
)?;

log::debug!("Start walking");

walk_visitor(
progress,
self.client,
Expand Down
5 changes: 4 additions & 1 deletion sbom/sbom-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@ impl Cli {
#[tokio::main]
async fn main() -> ExitCode {
if let Err(err) = Cli::parse().run().await {
eprintln!("{err}");
log::error!("Failed to execute: {err}");
for (n, cause) in err.chain().enumerate().skip(1) {
log::info!(" {n}: {cause}");
}
ExitCode::FAILURE
} else {
ExitCode::SUCCESS
Expand Down
2 changes: 2 additions & 0 deletions sbom/src/source/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ pub async fn new_source(
match uri.scheme().map(|s| s.as_str()) {
Some("file") => {
let source = uri.path().as_str();
log::debug!("Creating file source: {source}");
Ok(FileSource::new(source, FileOptions::new().since(discover.since))?.into())
}
Some(_scheme) => {
log::debug!("Creating HTTP source: {source}");
let fetcher = Fetcher::new(fetcher.into()).await?;
Ok(HttpSource::new(
Url::parse(&source)?,
Expand Down

0 comments on commit d45d3c8

Please sign in to comment.