aboutsummaryrefslogtreecommitdiff
path: root/src/log.moon
diff options
context:
space:
mode:
authorAlex Pickering <alex@cogarr.net>2026-02-01 13:14:32 -0600
committerAlexander M Pickering <alex@cogarr.net>2026-02-01 13:14:32 -0600
commit3a975db66a3711f34e8b64bb27a8eaca79fdeca9 (patch)
treefcc12f8f9d638ff575c1963796de76b7628854b4 /src/log.moon
downloadggj26-master.tar.gz
ggj26-master.tar.bz2
ggj26-master.zip
Initial commitHEADmaster
Diffstat (limited to 'src/log.moon')
-rw-r--r--src/log.moon37
1 files changed, 37 insertions, 0 deletions
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