diff options
| author | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-25 17:09:35 +0300 |
|---|---|---|
| committer | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-25 17:09:35 +0300 |
| commit | 55dba26bfd2c49bbd07e4da95179a53ce5c163a8 (patch) | |
| tree | 62dfce9508679026461b9c21e281b9b0ba8841c0 /appl/lib/sh9log.b | |
| parent | 2630491c9870e71a78791a8144a340e4cd5f99ed (diff) | |
Add logger to control debug printing from single point
Diffstat (limited to 'appl/lib/sh9log.b')
| -rw-r--r-- | appl/lib/sh9log.b | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/appl/lib/sh9log.b b/appl/lib/sh9log.b new file mode 100644 index 0000000..e4867e4 --- /dev/null +++ b/appl/lib/sh9log.b @@ -0,0 +1,58 @@ +implement Sh9Log; + +include "sys.m"; +include "sh9log.m"; + +sys: Sys; + +Logger.dbg(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_DBG) { + n = sys->print("[D] %s\n", s); + } + return n; +} + +Logger.inf(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_INF) { + n = sys->print("[I] %s\n", s); + } + return n; +} + +Logger.wrn(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_WRN) { + n = sys->print("[W] %s\n", s); + } + return n; +} + +Logger.err(m: self ref Logger, s: string): int +{ + n:=0; + if (m.level <= LOG_ERR) { + n = sys->print("[E] %s\n", s); + } + return n; +} + +Logger.set_level(m: self ref Logger, level: int) +{ + if (m.level >= LOG_ERR) { + m.level = LOG_ERR; + } else if (m.level <= LOG_DBG) { + m.level = LOG_DBG; + } else { + m.level = level; + } +} + +init() +{ + sys = load Sys Sys->PATH; +} |
