diff options
| author | Alex Pickering <alex@cogarr.net> | 2026-02-01 13:14:32 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2026-02-01 13:14:32 -0600 |
| commit | 3a975db66a3711f34e8b64bb27a8eaca79fdeca9 (patch) | |
| tree | fcc12f8f9d638ff575c1963796de76b7628854b4 /src/log.moon | |
| download | ggj26-master.tar.gz ggj26-master.tar.bz2 ggj26-master.zip | |
Diffstat (limited to 'src/log.moon')
| -rw-r--r-- | src/log.moon | 37 |
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 |
