User-facing logging cleanup. echolon hello and the default echolon backtest single path no longer flood stdout with per-bar [DEBUG] Bar N | START/END and per-trade BUY EXECUTED / TRADE # CLOSED lines. The user now sees a one-line Sharpe summary plus a handful of workflow milestones; opt in to the full trace via --verbose (or -v).
New
- New
summaryrun_context (echolon.backtest.logging_utils). Root INFO so workflow milestones remain visible ([BACKTEST_RUNNER] Complete,[STRATEGY_BRIDGE] Indicators); bar-loop loggers (backtrader_strategy,strategy.component, contract-aware/session-aware hooks) demoted to WARNING.echolon helloand non-verboseecholon backtest singleuse this by default.
Fixed
should_log_detailsnow correctly gates onlydebugandbest_trial(was: every non-optimizationcontext, which accidentally enabled per-bar trace for every default invocation).- Gated
BUY/SELL EXECUTEDandTRADE CLOSEDBacktrader prints behindshould_log_details. Order-rejection prints stay unconditional so errors always surface. BacktestRunner.runno longer silently coerces unknown contexts tobest_trial; canonical RunContext values pass through verbatim.- ContextVar default
"debug"→"summary"so callers that hit logger paths without first callingsetup_backtest_loggingdon't flood stdout. echolon backtest single --verbosehelp text + docstring corrected (previously claimed it surfaced a DEBUG trace, but the trace was always on).
Verification
- 739/739 tests pass (3 new regression tests).
- Live: default output reduced from ~1500 lines to 36 with the Sharpe summary visible at the bottom;
--verboserestores the full 2069-line trace.
Install
```bash
pip install --upgrade echolon
```