From 3a975db66a3711f34e8b64bb27a8eaca79fdeca9 Mon Sep 17 00:00:00 2001 From: Alex Pickering Date: Sun, 1 Feb 2026 13:14:32 -0600 Subject: Initial commit --- src/log.moon | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/log.moon (limited to 'src/log.moon') diff --git a/src/log.moon b/src/log.moon new file mode 100644 index 0000000..cadfaec --- /dev/null +++ b/src/log.moon @@ -0,0 +1,37 @@ +-- Singleton object to deal with log messages +class log + log: (message, tags, level) -> + tags = tags or {} + if not level + error("Level is required") + tag_rev = {tag,true for tag in *tags} + chunk = + level: level + time: os.clock! + message: message + tags: tag_rev + for observer in *log.observers + observer(chunk) + + reset: -> + log.observers = {} + debug: (message, tags) -> + --log.log(message, tags, "debug") + info: (message, tags) -> + log.log(message, tags, "info") + warn: (message, tags) -> + log.log(message, tags, "warn") + error: (message, tags) -> + log.log(message, tags, "error") + -- We can't call error() here, see preload.lua + panic: (message, tags) -> + log.log(message, tags, "panic") + -- Can't call error() here either. + listen: (callback) -> + table.insert(log.observers, callback) + #log.observers + defen: (n) -> + table.remove(log.observers, n) + +log.reset() +log -- cgit v1.2.3-70-g09d2