logging-manager.coffee 879 B

1234567891011121314151617181920212223242526272829303132
  1. bunyan = require('bunyan')
  2. module.exports = Logger =
  3. initialize: (name) ->
  4. @logger = bunyan.createLogger
  5. name: name
  6. serializers: bunyan.stdSerializers
  7. return @
  8. initializeErrorReporting: (sentry_dsn, options) ->
  9. raven = require "raven"
  10. @raven = new raven.Client(sentry_dsn, options)
  11. info : ()->
  12. @logger.info.apply(@logger, arguments)
  13. log : ()->
  14. @logger.info.apply(@logger, arguments)
  15. error: (attributes, args...)->
  16. @logger.error(attributes, args...)
  17. if @raven?
  18. error = attributes.err or attributes.error
  19. if error?
  20. tags = {}
  21. for key, value of attributes
  22. tags[key] = value if key.match(/_id/) and typeof value == 'string'
  23. @raven.captureError(error, tags: tags, extra: attributes)
  24. err: ()->
  25. @logger.error.apply(@logger, arguments)
  26. warn: ()->
  27. @logger.warn.apply(@logger, arguments)
  28. Logger.initialize("default-sharelatex")