30 lines
605 B
CoffeeScript
30 lines
605 B
CoffeeScript
|
{_} = require 'underscore'
|
||
|
|
||
|
LOG_KEY = "log"
|
||
|
LOG_MAX = 100
|
||
|
redis = require('./redis')
|
||
|
|
||
|
log = (message, context={}, next) ->
|
||
|
context = _.extend({}, @context, context)
|
||
|
obj = {message, context}
|
||
|
objStr = JSON.stringify(obj)
|
||
|
|
||
|
redis.lpush LOG_KEY, objStr, (err) ->
|
||
|
return next(err) if err
|
||
|
redis.ltrim LOG_KEY, 0, LOG_MAX, (err, count) ->
|
||
|
return next(err) if err
|
||
|
next() if err
|
||
|
|
||
|
return objStr
|
||
|
|
||
|
withContext = (context) ->
|
||
|
context = _.extend({}, @context, context)
|
||
|
|
||
|
return {
|
||
|
context: context
|
||
|
log: log
|
||
|
withContext: withContext
|
||
|
}
|
||
|
|
||
|
@log = log
|
||
|
@withContext = withContext
|