From 8b512adbbcf62f49b3e92410e643c86f2e70908a Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 15 Sep 2024 17:50:43 -0400 Subject: Move each example to its own folder --- examples/log/log.tm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/log/log.tm (limited to 'examples/log') diff --git a/examples/log/log.tm b/examples/log/log.tm new file mode 100644 index 00000000..42df072c --- /dev/null +++ b/examples/log/log.tm @@ -0,0 +1,50 @@ +use +use + +timestamp_format := CString("%F %T") + +logfiles := {:Path} + +func _timestamp()->Text: + c_str := inline C:CString { + char *str = GC_MALLOC_ATOMIC(20); + time_t t; time(&t); + struct tm *tm_info = localtime(&t); + strftime(str, 20, "%F %T", tm_info); + str + } + return c_str:as_text() + +func info(text:Text, newline=yes): + say("$\[2]⚫ $text$\[]", newline) + for file in logfiles: + file:append("$(_timestamp()) [info] $text$\n") + +func debug(text:Text, newline=yes): + say("$\[32]🟢 $text$\[]", newline) + for file in logfiles: + file:append("$(_timestamp()) [debug] $text$\n") + +func warn(text:Text, newline=yes): + say("$\[33;1]🟡 $text$\[]", newline) + for file in logfiles: + file:append("$(_timestamp()) [warn] $text$\n") + +func error(text:Text, newline=yes): + say("$\[31;1]🔴 $text$\[]", newline) + for file in logfiles: + file:append("$(_timestamp()) [error] $text$\n") + +func add_logfile(file:Path): + logfiles:add(file) + +func remove_logfile(file:Path): + logfiles:remove(file) + +func main(): + add_logfile((./log.txt)) + >> info("Hello") + >> debug("Hello") + >> warn("Hello") + >> error("Hello") + -- cgit v1.2.3