Create settings for logger

pull/2144/head
Rodrigo Nascimento 10 years ago
parent 486b1f66d2
commit cc4604f230
  1. 12
      packages/rocketchat-lib/lib/configLogger.coffee
  2. 1
      packages/rocketchat-lib/package.js
  3. 6
      packages/rocketchat-lib/server/startup/settings.coffee
  4. 55
      packages/rocketchat-logger/server.coffee

@ -0,0 +1,12 @@
RocketChat.settings.get 'Log_Package', (key, value) ->
LoggerManager?.showPackage = value
RocketChat.settings.get 'Log_File', (key, value) ->
LoggerManager?.showFileAndLine = value
RocketChat.settings.get 'Log_Level', (key, value) ->
if value?
LoggerManager?.logLevel = parseInt value
Meteor.setTimeout ->
LoggerManager?.enable(true)
, 200

@ -35,6 +35,7 @@ Package.onUse(function(api) {
// COMMON LIB
api.addFiles('lib/settings.coffee');
api.addFiles('lib/configLogger.coffee');
api.addFiles('lib/callbacks.coffee');
api.addFiles('lib/slashCommand.coffee');
api.addFiles('lib/Message.coffee');

@ -164,6 +164,12 @@ RocketChat.settings.addGroup 'Layout', ->
@add 'Layout_Login_Terms', 'By proceeding to create your account and use Rocket.Chat, you are agreeing to our <a href="/terms-of-service">Terms of Service</a> and <a href="/privacy-policy">Privacy Policy</a>. If you do not agree, you cannot use Rocket.Chat.', { type: 'string', multiline: true, public: true }
RocketChat.settings.addGroup 'Logs', ->
@add 'Log_Level', '0', { type: 'select', values: [ { key: '0', i18nLabel: '0_Errors_Only' }, { key: '1', i18nLabel: '1_Errors_and_Information' }, { key: '2', i18nLabel: '2_Erros_Information_and_Debug' } ] , public: true }
@add 'Log_Package', false, { type: 'boolean', public: true }
@add 'Log_File', false, { type: 'boolean', public: true }
RocketChat.settings.init()
# Remove runtime settings (non-persistent)

@ -1,9 +1,12 @@
@LoggerManager = new class extends EventEmitter
constructor: ->
@enabled = false
@loggers = {}
@showPackage = true
@showFileAndLine = true
@logLevel = 2
@queue = []
@showPackage = false
@showFileAndLine = false
@logLevel = 0
register: (logger) ->
if not logger instanceof Logger
@ -13,12 +16,41 @@
@emit 'register', logger
@LoggerManager.on 'register', ->
console.log('on register', arguments)
addToQueue: (logger, args)->
@queue.push
logger: logger
args: args
dispatchQueue: ->
for item in @queue
item.logger._log.apply item.logger, item.args
@clearQueue()
clearQueue: ->
@queue = []
disable: ->
@enabled = false
enable: (dispatchQueue=false) ->
@enabled = true
if dispatchQueue is true
@dispatchQueue()
else
@clearQueue()
# @LoggerManager.on 'register', ->
# console.log('on register', arguments)
@Logger = class Logger
defaultTypes:
debug:
name: 'debug'
color: 'blue'
level: 2
log:
name: 'info'
color: 'blue'
@ -27,10 +59,6 @@
name: 'info'
color: 'blue'
level: 1
debug:
name: 'debug'
color: 'blue'
level: 2
warn:
name: 'warn'
color: 'magenta'
@ -83,9 +111,10 @@
details = @_getCallerDetails()
detailParts = []
if details.package? and LoggerManager.showPackage is true
if details.package? and (LoggerManager.showPackage is true or options.type is 'error')
detailParts.push details.package
if LoggerManager.showFileAndLine is true
if LoggerManager.showFileAndLine is true or options.type is 'error'
if details.file? and details.line?
detailParts.push "#{details.file}:#{details.line}"
else
@ -153,6 +182,10 @@
return details
_log: (options) ->
if LoggerManager.enabled is false
LoggerManager.addToQueue @, arguments
return
options.level ?= 1
if LoggerManager.logLevel < options.level

Loading…
Cancel
Save