File(s): oracle/src/main.rs:39-43
Problem:
tracing::info!(
%bind_addr,
network = config.network.as_str(),
"oracle server listening"
);
This is the only startup log line, and it surfaces just bind_addr and network. Every other resolved value — oracle_contract_id, price_loop_interval, keeper_loop_interval, set_prices_tx_fee, keeper_tx_fee, min_keeper_balance_xlm, which network URLs got picked, etc. — is invisible in the logs. This makes on-call debugging (e.g. "is this deployment using the fee override we set?") require re-deriving the config from raw env vars rather than reading the log. Notably, Config already derives Debug (oracle/src/config.rs:65) with SecretString's Debug impl redacting all secret fields (<redacted>), so logging ?config directly is already safe — it's a one-line addition, not a redaction project.
Suggested fix:
Add config = ?config (or a curated subset of the non-secret, operationally-relevant fields) to the startup tracing::info! call.
File(s): oracle/src/main.rs:39-43
Problem:
This is the only startup log line, and it surfaces just
bind_addrandnetwork. Every other resolved value —oracle_contract_id,price_loop_interval,keeper_loop_interval,set_prices_tx_fee,keeper_tx_fee,min_keeper_balance_xlm, which network URLs got picked, etc. — is invisible in the logs. This makes on-call debugging (e.g. "is this deployment using the fee override we set?") require re-deriving the config from raw env vars rather than reading the log. Notably,Configalready derivesDebug(oracle/src/config.rs:65) withSecretString'sDebugimpl redacting all secret fields (<redacted>), so logging?configdirectly is already safe — it's a one-line addition, not a redaction project.Suggested fix:
Add
config = ?config(or a curated subset of the non-secret, operationally-relevant fields) to the startuptracing::info!call.