Skip to content

Commit 272159d

Browse files
authored
Merge branch 'main' into gsph-ci-tests
2 parents 16c2ee1 + a169668 commit 272159d

2 files changed

Lines changed: 73 additions & 2 deletions

File tree

src/shammodels/sph/src/Solver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1678,7 +1678,7 @@ shammodels::sph::TimestepLog shammodels::sph::Solver<Tvec, Kern>::evolve_once()
16781678

16791679
// Here we will add self grav to the external forces indep of vel (this will be moved into a
16801680
// sperate module later)
1681-
{
1681+
if (solver_config.self_grav_config.is_sg_on()) {
16821682

16831683
auto constant_G = shamrock::solvergraph::IDataEdge<Tscal>::make_shared("", "");
16841684

src/shamsys/src/change_log_format.cpp

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* @brief
1414
*/
1515

16+
#include "shambase/stacktrace.hpp"
1617
#include "shambase/term_colors.hpp"
1718
#include "shamcmdopt/env.hpp"
1819
#include "shamcmdopt/tty.hpp"
@@ -186,6 +187,73 @@ namespace logformatter {
186187
shambase::term_colors::bold());
187188
}
188189

190+
/**
191+
* @brief Log formatter for style 3, full details + time
192+
* @brief Log formatter for style 4, full details + time
193+
* @param args The arguments for the log formatter
194+
* @return std::string The formatted log
195+
*/
196+
std::string style4_formatter_full(const logger::ReformatArgs &args) {
197+
198+
u32 tty_width = shamcmdopt::get_tty_columns();
199+
200+
std::string ansi_reset = shambase::term_colors::reset();
201+
std::string ansi_faint = shambase::term_colors::faint();
202+
203+
std::string lineend = shambase::format(
204+
"{5:} [{3:}][rank={6:}][{7:.2f}s]{2:}",
205+
args.color,
206+
args.level_name,
207+
ansi_reset,
208+
args.module_name,
209+
args.content,
210+
ansi_faint,
211+
shamcomm::world_rank(),
212+
shambase::details::get_wtime());
213+
214+
std::string log = shambase::format(
215+
"{0:}{1:}{2:}: {4:}",
216+
args.color,
217+
args.level_name,
218+
ansi_reset,
219+
args.module_name,
220+
args.content,
221+
ansi_faint,
222+
shamcomm::world_rank());
223+
224+
std::string log_line1, log_line2;
225+
size_t first_nl = log.find_first_of('\n');
226+
if (first_nl != std::string::npos) {
227+
log_line1 = log.substr(0, first_nl);
228+
log_line2 = log.substr(first_nl);
229+
} else {
230+
log_line1 = log;
231+
log_line2 = "";
232+
}
233+
234+
u32 ansi_count = ansi_reset.size() * 2 + ansi_faint.size() + args.color.size();
235+
236+
return shambase::format("{:<{}}", log_line1, tty_width - lineend.size() + ansi_count - 1)
237+
+ lineend + log_line2;
238+
}
239+
240+
/**
241+
* @brief Log formatter for style 3, simple details + time
242+
* @brief Log formatter for style 4, simple details
243+
* @param args The arguments for the log formatter
244+
* @return std::string The formatted log
245+
*/
246+
std::string style4_formatter_simple(const logger::ReformatArgs &args) {
247+
return shambase::format(
248+
"{5:}{3:}{2:}: {4:}",
249+
args.color,
250+
args.level_name,
251+
shambase::term_colors::reset(),
252+
args.module_name,
253+
args.content,
254+
shambase::term_colors::bold());
255+
}
256+
189257
/**
190258
* @brief The callback called when an exception is thrown
191259
*
@@ -201,7 +269,7 @@ namespace logformatter {
201269
} // namespace logformatter
202270

203271
std::string SHAMLOGFORMATTER = shamcmdopt::getenv_str_default_register(
204-
"SHAMLOGFORMATTER", "3", "Change the log formatter (values :0-3) [default: 3]");
272+
"SHAMLOGFORMATTER", "3", "Change the log formatter (values :0-4) [default: 3]");
205273

206274
std::string SHAMLOG_ERR_ON_EXCEPT = shamcmdopt::getenv_str_default_register(
207275
"SHAMLOG_ERR_ON_EXCEPT", "1", "Enable logging of exceptions (default to 1)");
@@ -224,6 +292,9 @@ namespace shamsys {
224292
} else if (SHAMLOGFORMATTER == "3") {
225293
logger::change_formaters(
226294
logformatter::style3_formatter_full, logformatter::style3_formatter_simple);
295+
} else if (SHAMLOGFORMATTER == "4") {
296+
logger::change_formaters(
297+
logformatter::style4_formatter_full, logformatter::style4_formatter_simple);
227298
} else {
228299
logger::err_ln("Log", "Unknown formatter");
229300
shambase::throw_unimplemented("Unknown formatter");

0 commit comments

Comments
 (0)