From 3f5f1d91d15758f9502b2500135ea2a4eaff997b Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Sat, 20 Apr 2024 18:40:05 +0200 Subject: [PATCH] set loglevel from debugger --- debugger.cpp | 13 +++++++++++++ log.cpp | 8 +++++++- log.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/debugger.cpp b/debugger.cpp index 49f5255..153d328 100644 --- a/debugger.cpp +++ b/debugger.cpp @@ -1049,6 +1049,18 @@ void debugger(console *const cnsl, bus *const b, std::atomic_uint32_t *const sto continue; } + else if (parts[0] == "setll" && parts.size() == 2) { + auto ll_parts = split(parts[1], ","); + + if (ll_parts.size() != 2) + cnsl->put_string_lf("Loglevel for either screen or file missing"); + else { + log_level_t ll_screen = parse_ll(ll_parts[0]); + log_level_t ll_file = parse_ll(ll_parts[1]); + + setll(ll_screen, ll_file); + } + } else if (cmd == "qi") { show_queued_interrupts(cnsl, c); @@ -1087,6 +1099,7 @@ void debugger(console *const cnsl, bus *const b, std::atomic_uint32_t *const sto " follows v/p (virtual/physical), all octal values, mmr0-3 and psw are", " registers", "trace/t - toggle tracing", + "setll - set loglevel: terminal,file", "turbo - toggle turbo mode (cannot be interrupted)", "debug - enable CPU debug mode", "bt - show backtrace - need to enable debug first", diff --git a/log.cpp b/log.cpp index a1ca6ce..1eb2b8c 100644 --- a/log.cpp +++ b/log.cpp @@ -39,7 +39,7 @@ void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_scre logfile = lf ? strdup(lf) : nullptr; - log_level_file = ll_file; + log_level_file = ll_file; log_level_screen = ll_screen; l_timestamp = timestamp; @@ -47,6 +47,12 @@ void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_scre atexit(closelog); } +void setll(const log_level_t ll_file, const log_level_t ll_screen) +{ + log_level_file = ll_file; + log_level_screen = ll_screen; +} + void setloguid(const int uid, const int gid) { lf_uid = uid; diff --git a/log.h b/log.h index 1f4003e..2cfce16 100644 --- a/log.h +++ b/log.h @@ -12,6 +12,7 @@ typedef enum { debug, info, warning, ll_error, none } log_level_t; // TODO ll_ log_level_t parse_ll(const std::string & str); void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_screen, const bool l_timestamp); +void setll(const log_level_t ll_file, const log_level_t ll_screen); void setloguid(const int uid, const int gid); void closelog(); void dolog(const log_level_t ll, const char *fmt, ...);