diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-04-13 18:40:35 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-04-14 08:46:54 +0000 |
| commit | 1a8debe87762072b3a63b769aa515ebf63b4c70d (patch) | |
| tree | 33b42866307d11d2c0878b23e0ec0bb8925d3fcc /logger.moon | |
| parent | spec base.match __tostring (diff) | |
| download | alive-1a8debe87762072b3a63b769aa515ebf63b4c70d.tar.gz alive-1a8debe87762072b3a63b769aa515ebf63b4c70d.zip | |
move into proper Lua module (`alv`)
Diffstat (limited to 'logger.moon')
| -rw-r--r-- | logger.moon | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/logger.moon b/logger.moon deleted file mode 100644 index cd41cc8..0000000 --- a/logger.moon +++ /dev/null @@ -1,63 +0,0 @@ -unpack or= table.unpack - -class Logger - levels = { - debug: 0 - trace: 1 - log: 2 - warn: 3 - error: 4 - print: 5 - silent: 6 - } - - mklog = (max_level) -> - new: (level='log') => - @level = levels[level] or level - @prefix = '' - - for name, level in pairs levels - @[name] = (first, ...) => - return unless @level <= level - - where = debug.traceback '', 2 - if level == levels.error or @level == levels.debug - print @prefix .. first, ... - print where - else - print @prefix .. first, ... - - if level == levels.print - @push = (fn, ...) => fn ... - - push: (fn, ...) => - last = @prefix - @prefix ..= ' ' - - res = { xpcall fn, debug.traceback, ... } - - @prefix = last - - if ok = table.remove res, 1 - unpack res - else - error unpack res - - try: (msg, fn, ...) => - result = { xpcall fn, debug.traceback, ... } - ok = table.remove result, 1 - - if not ok - @error msg, unpack result - return - - unpack result - --- static - init: (...) -> - export L - L = Logger ... - -{ - :Logger -} |
