diff --git a/crates/katana/runner/src/lib.rs b/crates/katana/runner/src/lib.rs index 13a19fe771..3ad87a63ef 100644 --- a/crates/katana/runner/src/lib.rs +++ b/crates/katana/runner/src/lib.rs @@ -45,6 +45,8 @@ pub struct KatanaRunnerConfig { pub block_time: Option, /// The port to run the katana runner on, if None, a random free port is chosen. pub port: Option, + /// The path where to log info, if None, logs are stored in a temp dir. + pub log_path: Option, } impl Default for KatanaRunnerConfig { @@ -56,6 +58,7 @@ impl Default for KatanaRunnerConfig { port: None, program_name: None, run_name: None, + log_path: None, } } } @@ -102,14 +105,18 @@ impl KatanaRunner { let stdout = child.stdout.take().context("failed to take subprocess stdout")?; - let log_dir = TempDir::new().unwrap(); - let log_filename = PathBuf::from(format!( "katana-{}.log", config.run_name.clone().unwrap_or_else(|| port.to_string()) )); - let log_file_path = log_dir.join(log_filename); + let log_file_path = if let Some(log_path) = config.log_path { + log_path + } else { + let log_dir = TempDir::new().unwrap(); + log_dir.join(log_filename) + }; + let log_file_path_sent = log_file_path.clone(); let (sender, receiver) = mpsc::channel();