1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
|