wip: see if there's some logging we're missing

This commit is contained in:
Cole Helbling 2024-04-23 07:54:02 -07:00
parent a12e8e1700
commit 589099e43a
4 changed files with 49 additions and 11 deletions

23
Cargo.lock generated
View file

@ -2554,6 +2554,7 @@ dependencies = [
"tokio-util", "tokio-util",
"tower-http", "tower-http",
"tracing", "tracing",
"tracing-appender",
"tracing-subscriber", "tracing-subscriber",
"uuid", "uuid",
] ]
@ -4665,6 +4666,18 @@ dependencies = [
"tracing-core", "tracing-core",
] ]
[[package]]
name = "tracing-appender"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
dependencies = [
"crossbeam-channel",
"thiserror",
"time",
"tracing-subscriber",
]
[[package]] [[package]]
name = "tracing-attributes" name = "tracing-attributes"
version = "0.1.26" version = "0.1.26"
@ -4698,12 +4711,12 @@ dependencies = [
[[package]] [[package]]
name = "tracing-log" name = "tracing-log"
version = "0.1.3" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
dependencies = [ dependencies = [
"lazy_static",
"log", "log",
"once_cell",
"tracing-core", "tracing-core",
] ]
@ -4719,9 +4732,9 @@ dependencies = [
[[package]] [[package]]
name = "tracing-subscriber" name = "tracing-subscriber"
version = "0.3.17" version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [ dependencies = [
"matchers", "matchers",
"nu-ansi-term", "nu-ansi-term",

View file

@ -32,6 +32,7 @@ tempfile = "3.9"
uuid = { version = "1.4.0", features = ["serde", "v7", "rand", "std"] } uuid = { version = "1.4.0", features = ["serde", "v7", "rand", "std"] }
futures = "0.3" futures = "0.3"
async-compression = "0.4" async-compression = "0.4"
tracing-appender = "0.2.3"
[dependencies.tokio] [dependencies.tokio]
version = "1.28.0" version = "1.28.0"

View file

@ -57,6 +57,12 @@ async fn workflow_finish(
} }
} }
// NOTE(cole-h): see `init_logging`
let logfile = std::env::temp_dir().join("magic-nix-cache-tracing.log");
let logfile_contents = std::fs::read_to_string(logfile)?;
println!("Every log line throughout the lifetime of the program:");
println!("\n{logfile_contents}\n");
let reply = WorkflowFinishResponse {}; let reply = WorkflowFinishResponse {};
//state.metrics.num_new_paths.set(num_new_paths); //state.metrics.num_new_paths.set(num_new_paths);

View file

@ -35,6 +35,8 @@ use tempfile::NamedTempFile;
use tokio::process::Command; use tokio::process::Command;
use tokio::sync::{oneshot, Mutex, RwLock}; use tokio::sync::{oneshot, Mutex, RwLock};
use tracing_subscriber::filter::EnvFilter; use tracing_subscriber::filter::EnvFilter;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
use gha_cache::Credentials; use gha_cache::Credentials;
@ -137,8 +139,6 @@ struct StateInner {
} }
async fn main_cli() -> Result<()> { async fn main_cli() -> Result<()> {
init_logging();
let args = Args::parse(); let args = Args::parse();
let metrics = Arc::new(telemetry::TelemetryReport::new()); let metrics = Arc::new(telemetry::TelemetryReport::new());
@ -439,13 +439,15 @@ async fn post_build_hook(out_paths: &str) -> Result<()> {
#[tokio::main] #[tokio::main]
async fn main() -> Result<()> { async fn main() -> Result<()> {
let _guard = init_logging()?;
match std::env::var("OUT_PATHS") { match std::env::var("OUT_PATHS") {
Ok(out_paths) => post_build_hook(&out_paths).await, Ok(out_paths) => post_build_hook(&out_paths).await,
Err(_) => main_cli().await, Err(_) => main_cli().await,
} }
} }
fn init_logging() { fn init_logging() -> Result<tracing_appender::non_blocking::WorkerGuard> {
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| { let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| {
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
return EnvFilter::new("info") return EnvFilter::new("info")
@ -456,11 +458,27 @@ fn init_logging() {
return EnvFilter::new("info"); return EnvFilter::new("info");
}); });
tracing_subscriber::fmt() let stderr_layer = tracing_subscriber::fmt::layer()
.with_writer(std::io::stderr) .with_writer(std::io::stderr)
.pretty() .pretty();
.with_env_filter(filter)
let logfile = std::env::temp_dir().join("magic-nix-cache-tracing.log");
let file = std::fs::OpenOptions::new()
.create(true)
.append(true)
.open(logfile)?;
let (nonblocking, guard) = tracing_appender::non_blocking(file);
let file_layer = tracing_subscriber::fmt::layer()
.with_writer(nonblocking)
.pretty();
tracing_subscriber::registry()
.with(filter)
.with(stderr_layer)
.with(file_layer)
.init(); .init();
Ok(guard)
} }
#[cfg(debug_assertions)] #[cfg(debug_assertions)]