From 6771cbf2155f1c1362508116c205dd7b6c7b03a8 Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 11:14:33 +0100 Subject: [PATCH 1/6] lh5: downgrade verbosity level --- src/RMGRunAction.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RMGRunAction.cc b/src/RMGRunAction.cc index 7ffed27e..62a17bb1 100644 --- a/src/RMGRunAction.cc +++ b/src/RMGRunAction.cc @@ -400,7 +400,7 @@ void RMGRunAction::PostprocessOutputFile() const { try { fs::rename(worker_tmp, worker_lh5); - RMGLog::Out(RMGLog::summary, "Moved output file ", worker_tmp.string(), " to ", worker_lh5.string()); + RMGLog::Out(RMGLog::detail, "Moved output file ", worker_tmp.string(), " to ", worker_lh5.string()); } catch (const fs::filesystem_error& e) { RMGLog::Out( RMGLog::error, From ef96deaddc8345bdc0186859672d11cf1457c705 Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 11:14:53 +0100 Subject: [PATCH 2/6] improve random seed logging --- src/RMGManager.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/RMGManager.cc b/src/RMGManager.cc index 87ff5bfd..9b47c743 100644 --- a/src/RMGManager.cc +++ b/src/RMGManager.cc @@ -328,7 +328,7 @@ void RMGManager::SetRandEngineSeed(int seed) { ); CLHEP::HepRandom::setTheSeed(0); } else CLHEP::HepRandom::setTheSeed(seed); - RMGLog::Out(RMGLog::summary, "CLHEP::HepRandom seed set to: ", seed); + RMGLog::Out(RMGLog::summary, "CLHEP::HepRandom seed changed to: ", seed, " (user value)"); fIsRandControlled = true; } @@ -341,7 +341,12 @@ void RMGManager::SetRandEngineInternalSeed(int index) { int array_index = index % 2; CLHEP::HepRandom::setTheSeed(seeds[array_index]); - RMGLog::Out(RMGLog::summary, "CLHEP::HepRandom seed set to: ", seeds[array_index]); + RMGLog::Out( + RMGLog::summary, + "CLHEP::HepRandom seed changed to: ", + seeds[array_index], + " (from the internal seed table)" + ); fIsRandControlled = true; } @@ -351,7 +356,7 @@ void RMGManager::SetRandSystemEntropySeed() { std::random_device rd; // uses RDRND or /dev/urandom auto rand_seed = dist(rd); CLHEP::HepRandom::setTheSeed(rand_seed); - RMGLog::Out(RMGLog::summary, "CLHEP::HepRandom seed set to: ", rand_seed); + RMGLog::Out(RMGLog::summary, "CLHEP::HepRandom seed changed to: ", rand_seed, " (from system entropy)"); } void RMGManager::DefineCommands() { From e74144aab08a11660334b304f451fa5609009b9b Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 11:32:20 +0100 Subject: [PATCH 3/6] fix: logic bug in remage/logging.py prevented log messages to be shown --- python/remage/logging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/remage/logging.py b/python/remage/logging.py index 99826785..de3290f5 100644 --- a/python/remage/logging.py +++ b/python/remage/logging.py @@ -96,7 +96,7 @@ def supports_color() -> bool: "vt100", "xterm", ] - return sys.stderr.isatty() and any(term in t for t in terms) + return sys.stderr.isatty() and term is not None and any(t in term for t in terms) def set_logging_level(logger, rmg_log_level): From 2e4fcd17f63909e080619b128a691a2e68dea68a Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 11:34:27 +0100 Subject: [PATCH 4/6] fix: always configure non-colored logging handler when color unsupported Co-authored-by: aider (gpt-5.2) --- python/remage/logging.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/python/remage/logging.py b/python/remage/logging.py index de3290f5..f7d8f594 100644 --- a/python/remage/logging.py +++ b/python/remage/logging.py @@ -65,12 +65,23 @@ def setup_log() -> logging.Logger: logger.setLevel(logging.DEBUG) logger.propagate = False - if supports_color(): - fmt = "%(log_color)s[%(levelname)-7s ->%(reset)s %(message)s" + # Avoid adding duplicate handlers if setup_log() is called multiple times. + if not any(getattr(h, "_remage_default_handler", False) for h in logger.handlers): + # Keep the visible formatting identical between colored and non-colored output. + plain_fmt = "[%(levelname)-7s -> %(message)s" + colored_fmt = "%(log_color)s[%(levelname)-7s ->%(reset)s %(message)s" + + if supports_color(): + handler = colorlog.StreamHandler() + handler.setFormatter( + colorlog.ColoredFormatter(colored_fmt, log_colors=LEVEL_COLORS) + ) + else: + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(plain_fmt)) - handler = colorlog.StreamHandler() - handler.setFormatter(colorlog.ColoredFormatter(fmt, log_colors=LEVEL_COLORS)) handler.setLevel(logging.DEBUG) + handler._remage_default_handler = True # type: ignore[attr-defined] logger.addHandler(handler) set_logging_level(logger, "Summary") From e83444f3ed9b99566cc866c2c95be1ecf9da40a8 Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 11:58:48 +0100 Subject: [PATCH 5/6] fix: logging test --- tests/basics/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/basics/CMakeLists.txt b/tests/basics/CMakeLists.txt index 05dc0602..8d123de8 100644 --- a/tests/basics/CMakeLists.txt +++ b/tests/basics/CMakeLists.txt @@ -29,4 +29,4 @@ add_test(NAME basics/rand-seed COMMAND ${REMAGE_PYEXE} -g gdml/geometry.gdml -o none --rand-seed 123 --macro-substitutions ENERGY=1000 GENERATOR=GPS -- macros/run.mac) set_tests_properties(basics/rand-seed PROPERTIES PASS_REGULAR_EXPRESSION - "CLHEP::HepRandom seed set to: 123") + "CLHEP::HepRandom seed changed to: 123") From 20566ca62ede00de44f7c7444271cd9fdcb48cdb Mon Sep 17 00:00:00 2001 From: Luigi Pertoldi Date: Wed, 24 Dec 2025 13:00:41 +0100 Subject: [PATCH 6/6] test: improve basic surface error message for future better debugging of these issues --- tests/confinement/test_basic_surface.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/confinement/test_basic_surface.py b/tests/confinement/test_basic_surface.py index 4b2114bc..01c96c4a 100644 --- a/tests/confinement/test_basic_surface.py +++ b/tests/confinement/test_basic_surface.py @@ -35,7 +35,7 @@ def add_local_pos(vertices, pos): return vertices -tol = 1e-6 +tol = 1e-6 # mm select_sides = { "tubby": { "func": [ @@ -209,7 +209,10 @@ def add_local_pos(vertices, pos): indices[is_close] = idx if len(indices[indices == -1]) > 0: - msg = f"{dtype} has primaries not close to any side" + msg = ( + f"{dtype} has {len(indices[indices == -1])} in {len(vertices)} " + f"primaries not close to any side with absolute tolerance {tol} mm" + ) raise ValueError(msg) vertices["idx"] = indices