From 6fe6a57ef67b2b113d3bd8bdf19d98b19715db65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20David--Cl=C3=A9ris?= Date: Sun, 28 Dec 2025 21:18:48 +0100 Subject: [PATCH 1/4] [Logs] add SHAMLOGFORMATTER=4 (same as mode 3 but with elapsed time) --- src/shammodels/sph/src/Solver.cpp | 2 +- src/shamsys/src/change_log_format.cpp | 74 ++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/shammodels/sph/src/Solver.cpp b/src/shammodels/sph/src/Solver.cpp index 675354429..d5180c921 100644 --- a/src/shammodels/sph/src/Solver.cpp +++ b/src/shammodels/sph/src/Solver.cpp @@ -1678,7 +1678,7 @@ shammodels::sph::TimestepLog shammodels::sph::Solver::evolve_once() // Here we will add self grav to the external forces indep of vel (this will be moved into a // sperate module later) - { + if(solver_config.self_grav_config.is_sg_on()) { auto constant_G = shamrock::solvergraph::IDataEdge::make_shared("", ""); diff --git a/src/shamsys/src/change_log_format.cpp b/src/shamsys/src/change_log_format.cpp index 399363e9a..0eff8be68 100644 --- a/src/shamsys/src/change_log_format.cpp +++ b/src/shamsys/src/change_log_format.cpp @@ -13,6 +13,7 @@ * @brief */ +#include "shambase/stacktrace.hpp" #include "shambase/term_colors.hpp" #include "shamcmdopt/env.hpp" #include "shamcmdopt/tty.hpp" @@ -186,6 +187,74 @@ namespace logformatter { shambase::term_colors::bold()); } + + /** + * @brief Log formatter for style 3, full details + time + * + * @param args The arguments for the log formatter + * @return std::string The formatted log + */ + std::string style4_formatter_full(const logger::ReformatArgs &args) { + + u32 tty_width = shamcmdopt::get_tty_columns(); + + std::string ansi_reset = shambase::term_colors::reset(); + std::string ansi_faint = shambase::term_colors::faint(); + + std::string lineend = shambase::format( + "{5:} [{3:}][rank={6:}][{7:.2f}s]{2:}", + args.color, + args.level_name, + ansi_reset, + args.module_name, + args.content, + ansi_faint, + shamcomm::world_rank(), + shambase::details::get_wtime()); + + std::string log = shambase::format( + "{0:}{1:}{2:}: {4:}", + args.color, + args.level_name, + ansi_reset, + args.module_name, + args.content, + ansi_faint, + shamcomm::world_rank()); + + std::string log_line1, log_line2; + size_t first_nl = log.find_first_of('\n'); + if (first_nl != std::string::npos) { + log_line1 = log.substr(0, first_nl); + log_line2 = log.substr(first_nl); + } else { + log_line1 = log; + log_line2 = ""; + } + + u32 ansi_count = ansi_reset.size() * 2 + ansi_faint.size() + args.color.size(); + + return shambase::format("{:<{}}", log_line1, tty_width - lineend.size() + ansi_count - 1) + + lineend + log_line2; + } + + /** + * @brief Log formatter for style 3, simple details + time + * + * @param args The arguments for the log formatter + * @return std::string The formatted log + */ + std::string style4_formatter_simple(const logger::ReformatArgs &args) { + return shambase::format( + "{5:}{3:}{2:}: {4:}", + args.color, + args.level_name, + shambase::term_colors::reset(), + args.module_name, + args.content, + shambase::term_colors::bold()); + } + /** * @brief The callback called when an exception is thrown * @@ -201,7 +270,7 @@ namespace logformatter { } // namespace logformatter std::string SHAMLOGFORMATTER = shamcmdopt::getenv_str_default_register( - "SHAMLOGFORMATTER", "3", "Change the log formatter (values :0-3) [default: 3]"); + "SHAMLOGFORMATTER", "3", "Change the log formatter (values :0-4) [default: 3]"); std::string SHAMLOG_ERR_ON_EXCEPT = shamcmdopt::getenv_str_default_register( "SHAMLOG_ERR_ON_EXCEPT", "1", "Enable logging of exceptions (default to 1)"); @@ -224,6 +293,9 @@ namespace shamsys { } else if (SHAMLOGFORMATTER == "3") { logger::change_formaters( logformatter::style3_formatter_full, logformatter::style3_formatter_simple); + }else if (SHAMLOGFORMATTER == "4") { + logger::change_formaters( + logformatter::style4_formatter_full, logformatter::style4_formatter_simple); } else { logger::err_ln("Log", "Unknown formatter"); shambase::throw_unimplemented("Unknown formatter"); From 8b11498efa28f0e3bb1f9b1326e3871716470743 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 28 Dec 2025 20:20:45 +0000 Subject: [PATCH 2/4] [autofix.ci] fix file authorship & pre-commit --- src/shammodels/sph/src/Solver.cpp | 2 +- src/shamsys/src/change_log_format.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/shammodels/sph/src/Solver.cpp b/src/shammodels/sph/src/Solver.cpp index d5180c921..426e3edcc 100644 --- a/src/shammodels/sph/src/Solver.cpp +++ b/src/shammodels/sph/src/Solver.cpp @@ -1678,7 +1678,7 @@ shammodels::sph::TimestepLog shammodels::sph::Solver::evolve_once() // Here we will add self grav to the external forces indep of vel (this will be moved into a // sperate module later) - if(solver_config.self_grav_config.is_sg_on()) { + if (solver_config.self_grav_config.is_sg_on()) { auto constant_G = shamrock::solvergraph::IDataEdge::make_shared("", ""); diff --git a/src/shamsys/src/change_log_format.cpp b/src/shamsys/src/change_log_format.cpp index 0eff8be68..673431a82 100644 --- a/src/shamsys/src/change_log_format.cpp +++ b/src/shamsys/src/change_log_format.cpp @@ -187,14 +187,13 @@ namespace logformatter { shambase::term_colors::bold()); } - /** * @brief Log formatter for style 3, full details + time * * @param args The arguments for the log formatter * @return std::string The formatted log */ - std::string style4_formatter_full(const logger::ReformatArgs &args) { + std::string style4_formatter_full(const logger::ReformatArgs &args) { u32 tty_width = shamcmdopt::get_tty_columns(); @@ -293,7 +292,7 @@ namespace shamsys { } else if (SHAMLOGFORMATTER == "3") { logger::change_formaters( logformatter::style3_formatter_full, logformatter::style3_formatter_simple); - }else if (SHAMLOGFORMATTER == "4") { + } else if (SHAMLOGFORMATTER == "4") { logger::change_formaters( logformatter::style4_formatter_full, logformatter::style4_formatter_simple); } else { From eac9472fe567b3f1fc3a9e696335f5ac42ad0670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David--Cl=C3=A9ris=20Timoth=C3=A9e?= Date: Sun, 28 Dec 2025 21:21:50 +0100 Subject: [PATCH 3/4] Update src/shamsys/src/change_log_format.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/shamsys/src/change_log_format.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shamsys/src/change_log_format.cpp b/src/shamsys/src/change_log_format.cpp index 673431a82..ca441662b 100644 --- a/src/shamsys/src/change_log_format.cpp +++ b/src/shamsys/src/change_log_format.cpp @@ -189,7 +189,7 @@ namespace logformatter { /** * @brief Log formatter for style 3, full details + time - * + * @brief Log formatter for style 4, full details + time * @param args The arguments for the log formatter * @return std::string The formatted log */ From 6cd790e2e75cb66053cbda46452ac7bba752731b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David--Cl=C3=A9ris=20Timoth=C3=A9e?= Date: Sun, 28 Dec 2025 21:22:25 +0100 Subject: [PATCH 4/4] Update src/shamsys/src/change_log_format.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/shamsys/src/change_log_format.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shamsys/src/change_log_format.cpp b/src/shamsys/src/change_log_format.cpp index ca441662b..e8e012edc 100644 --- a/src/shamsys/src/change_log_format.cpp +++ b/src/shamsys/src/change_log_format.cpp @@ -239,7 +239,7 @@ namespace logformatter { /** * @brief Log formatter for style 3, simple details + time - * + * @brief Log formatter for style 4, simple details * @param args The arguments for the log formatter * @return std::string The formatted log */