From ce82046a11521b0537ac2150a07a4de54aec883a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 21 Jun 2025 20:34:33 +0300 Subject: Improve verbose logging for protocol tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Enable real-time log output during simulation execution - Fix HeadlessProtocolRunner to properly show logs as they happen - Update LogCapture to format timestamps clearly - Add test-verbose.sh script for demonstrating logging - Remove duplicate log printing in verbose mode Now when running tests with -Dds.sim.verbose=true or option 3 in test-protocols.sh, users can see protocol actions as they occur. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/main/java/testing/HeadlessProtocolRunner.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/main/java/testing/HeadlessProtocolRunner.java') diff --git a/src/main/java/testing/HeadlessProtocolRunner.java b/src/main/java/testing/HeadlessProtocolRunner.java index 69d398f..d68d743 100644 --- a/src/main/java/testing/HeadlessProtocolRunner.java +++ b/src/main/java/testing/HeadlessProtocolRunner.java @@ -29,25 +29,27 @@ public class HeadlessProtocolRunner { System.out.println("-".repeat(50)); HeadlessSimulationRunner runner = new HeadlessSimulationRunner(); - runner.setPrintLogs(verbose); + runner.setPrintLogs(verbose); // This will print logs in real-time during simulation + + if (verbose) { + System.out.println("\n--- Real-Time Simulation Log Output ---"); + System.out.println("(Logs show protocol actions as they happen)\n"); + } try { long startTime = System.currentTimeMillis(); SimulationResult result = runner.runSimulation(simFile, 5000); // 5 second timeout long duration = System.currentTimeMillis() - startTime; + if (verbose) { + System.out.println("--- End of Simulation ---\n"); + } + System.out.println("✓ Completed in " + duration + "ms"); System.out.println(" Processes: " + result.getMetrics().getNumProcesses()); System.out.println(" Log entries: " + result.getMetrics().getTotalLogCount()); System.out.println(" Messages per process: " + result.getMetrics().getProcessMessageCounts()); - if (verbose) { - System.out.println("\n--- Log Output ---"); - for (LogEntry log : result.getAllLogs()) { - System.out.println(log.toString()); - } - } - System.out.println(); } catch (Exception e) { System.err.println("✗ FAILED: " + e.getMessage()); @@ -81,7 +83,7 @@ public class HeadlessProtocolRunner { System.out.println("-".repeat(50)); HeadlessSimulationRunner runner = new HeadlessSimulationRunner(); - runner.setPrintLogs(false); // Don't print logs when running all tests + runner.setPrintLogs(verbose); // Print logs if verbose mode is enabled try { long startTime = System.currentTimeMillis(); -- cgit v1.2.3