summaryrefslogtreecommitdiff
path: root/appl/lib/sh9log.b
diff options
context:
space:
mode:
authorKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-25 17:09:35 +0300
committerKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-25 17:09:35 +0300
commit55dba26bfd2c49bbd07e4da95179a53ce5c163a8 (patch)
tree62dfce9508679026461b9c21e281b9b0ba8841c0 /appl/lib/sh9log.b
parent2630491c9870e71a78791a8144a340e4cd5f99ed (diff)
Add logger to control debug printing from single point
Diffstat (limited to 'appl/lib/sh9log.b')
-rw-r--r--appl/lib/sh9log.b58
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;
+}