Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 35 additions & 28 deletions magic-nix-cache/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ struct Args {
/// Whether or not to diff the store before and after Magic Nix Cache runs
#[arg(long, default_value_t = false)]
diff_store: bool,

/// Force debug logging on.
#[arg(long, default_value_t = false)]
debug: bool,
}

#[derive(Debug, Clone, Copy, PartialEq, clap::ValueEnum)]
Expand Down Expand Up @@ -248,7 +252,7 @@ impl FlakeHubAuthSource {
}

async fn main_cli(args: Args, recorder: detsys_ids_client::Recorder) -> Result<()> {
let guard = init_logging()?;
let guard = init_logging(&args)?;
let _tracing_guard = guard.appender_guard;

let environment = env::Environment::determine();
Expand Down Expand Up @@ -597,7 +601,7 @@ pub struct LogGuard {
logfile: Option<PathBuf>,
}

fn init_logging() -> Result<LogGuard> {
fn init_logging(args: &Args) -> Result<LogGuard> {
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| {
#[cfg(debug_assertions)]
return EnvFilter::new("info")
Expand All @@ -620,37 +624,40 @@ fn init_logging() -> Result<LogGuard> {
.with_writer(std::io::stderr)
.pretty();

let (guard, file_layer) = match std::env::var("RUNNER_DEBUG")
.or_else(|_| std::env::var("ACTIONS_STEP_DEBUG"))
.or_else(|_| std::env::var("ACTIONS_RUNNER_DEBUG"))
{
Ok(val) if val == "1" || val == "true" => {
let logfile = debug_logfile();
let file = std::fs::OpenOptions::new()
.create(true)
.write(true)
.truncate(true)
.open(&logfile)?;
let (nonblocking, guard) = tracing_appender::non_blocking(file);
let file_layer = tracing_subscriber::fmt::layer()
.with_writer(nonblocking)
.pretty();

(
LogGuard {
appender_guard: Some(guard),
logfile: Some(logfile),
},
Some(file_layer),
)
}
_ => (
let enable_debug = args.debug
|| std::env::var("RUNNER_DEBUG")
.or_else(|_| std::env::var("ACTIONS_STEP_DEBUG"))
.or_else(|_| std::env::var("ACTIONS_RUNNER_DEBUG"))
.ok()
.is_some_and(|val| val == "1" || val == "true");

let (guard, file_layer) = if enable_debug {
let logfile = debug_logfile();
let file = std::fs::OpenOptions::new()
.create(true)
.write(true)
.truncate(true)
.open(&logfile)?;
let (nonblocking, guard) = tracing_appender::non_blocking(file);
let file_layer = tracing_subscriber::fmt::layer()
.with_writer(nonblocking)
.pretty();

(
LogGuard {
appender_guard: Some(guard),
logfile: Some(logfile),
},
Some(file_layer),
)
} else {
(
LogGuard {
appender_guard: None,
logfile: None,
},
None,
),
)
};

tracing_subscriber::registry()
Expand Down
Loading