2025-12-18 14:11:54 +01:00
|
|
|
use std::{
|
|
|
|
|
env, fs,
|
|
|
|
|
path::{Path, PathBuf},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
use tracing_subscriber::{EnvFilter, fmt};
|
|
|
|
|
|
2026-01-19 08:48:05 +02:00
|
|
|
use crate::DeployerKind;
|
|
|
|
|
|
2025-12-18 14:11:54 +01:00
|
|
|
const DEFAULT_NODE_LOG_DIR_REL: &str = ".tmp/node-logs";
|
|
|
|
|
const DEFAULT_CONTAINER_NODE_LOG_DIR: &str = "/tmp/node-logs";
|
|
|
|
|
|
|
|
|
|
fn set_default_env(key: &str, value: &str) {
|
|
|
|
|
if std::env::var_os(key).is_none() {
|
|
|
|
|
// SAFETY: Used as an early-run default. Prefer setting env vars in the
|
|
|
|
|
// shell for multi-threaded runs.
|
|
|
|
|
unsafe {
|
|
|
|
|
std::env::set_var(key, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn init_logging_defaults() {
|
2026-01-26 16:36:51 +01:00
|
|
|
set_default_env("LOGOS_BLOCKCHAIN_TESTS_KEEP_LOGS", "1");
|
|
|
|
|
set_default_env("LOGOS_BLOCKCHAIN_LOG_LEVEL", "info");
|
2025-12-18 14:11:54 +01:00
|
|
|
set_default_env("RUST_LOG", "info");
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 15:30:59 +02:00
|
|
|
pub fn init_node_log_dir_defaults(deployer: DeployerKind) {
|
2026-01-26 16:36:51 +01:00
|
|
|
if env::var_os("LOGOS_BLOCKCHAIN_LOG_DIR").is_some() {
|
2025-12-18 14:11:54 +01:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let host_dir = repo_root().join(DEFAULT_NODE_LOG_DIR_REL);
|
|
|
|
|
let _ = fs::create_dir_all(&host_dir);
|
|
|
|
|
|
2026-01-09 15:30:59 +02:00
|
|
|
match deployer {
|
2026-01-26 16:36:51 +01:00
|
|
|
DeployerKind::Local => {
|
|
|
|
|
set_default_env("LOGOS_BLOCKCHAIN_LOG_DIR", &host_dir.display().to_string())
|
|
|
|
|
}
|
|
|
|
|
DeployerKind::Compose => {
|
|
|
|
|
set_default_env("LOGOS_BLOCKCHAIN_LOG_DIR", DEFAULT_CONTAINER_NODE_LOG_DIR)
|
|
|
|
|
}
|
2025-12-18 14:11:54 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn init_tracing() {
|
|
|
|
|
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
|
|
|
|
|
let _ = fmt().with_env_filter(filter).with_target(true).try_init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn repo_root() -> PathBuf {
|
|
|
|
|
env::var("CARGO_WORKSPACE_DIR")
|
|
|
|
|
.map(PathBuf::from)
|
|
|
|
|
.ok()
|
|
|
|
|
.or_else(|| {
|
|
|
|
|
Path::new(env!("CARGO_MANIFEST_DIR"))
|
|
|
|
|
.parent()
|
|
|
|
|
.map(Path::to_path_buf)
|
|
|
|
|
})
|
|
|
|
|
.unwrap_or_else(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")))
|
|
|
|
|
}
|