Improve logging performance by using functions
Improve logging performance by using functions to delay when complex strings are created until after the current logging level has been checked to ensure that log statement is actually going to be printed. There are many places where very complex objects are printed at lower logging levels which this avoids.
This commit is contained in:
@@ -36,7 +36,7 @@ module.exports = class BaseController extends Backbone.View
|
|||||||
return child
|
return child
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
logger.verbose "#{this} refreshing"
|
logger.verbose => "#{this} refreshing"
|
||||||
|
|
||||||
routeLinkClick: (event)->
|
routeLinkClick: (event)->
|
||||||
href = $(event.currentTarget).attr 'href'
|
href = $(event.currentTarget).attr 'href'
|
||||||
@@ -91,10 +91,10 @@ module.exports = class BaseController extends Backbone.View
|
|||||||
data = (@model?.toHash? and @model.toHash()) or @model or {}
|
data = (@model?.toHash? and @model.toHash()) or @model or {}
|
||||||
|
|
||||||
if not @_template?
|
if not @_template?
|
||||||
logger.error "Default render called for #{@constructor.name} without a template"
|
logger.error => "Default render called for #{@constructor.name} without a template"
|
||||||
return this
|
return this
|
||||||
|
|
||||||
logger.verbose "#{this} rendering with data: #{data}"
|
logger.verbose => "#{this} rendering with data: #{data}"
|
||||||
@onWillRender()
|
@onWillRender()
|
||||||
$oldEl = @$el
|
$oldEl = @$el
|
||||||
$newEl = Backbone.$(@_template(data))
|
$newEl = Backbone.$(@_template(data))
|
||||||
|
|||||||
@@ -96,15 +96,15 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
|||||||
pathname = window.location.pathname
|
pathname = window.location.pathname
|
||||||
|
|
||||||
if global.env is 'production' and ga?
|
if global.env is 'production' and ga?
|
||||||
logger.info "Recording GA page view: #{pathname}"
|
logger.info -> "Recording GA page view: #{pathname}"
|
||||||
ga 'send', 'pageview', pathname
|
ga 'send', 'pageview', pathname
|
||||||
else
|
else
|
||||||
logger.info "Suppressing GA page view: #{pathname}"
|
logger.info -> "Suppressing GA page view: #{pathname}"
|
||||||
|
|
||||||
_setPage: (page, controller)->
|
_setPage: (page, controller)->
|
||||||
return if @_controller is controller
|
return if @_controller is controller
|
||||||
|
|
||||||
logger.info "changing to page controller: #{controller.constructor.name}"
|
logger.info -> "changing to page controller: #{controller.constructor.name}"
|
||||||
showDuration = Duration.normal
|
showDuration = Duration.normal
|
||||||
show = =>
|
show = =>
|
||||||
@_page = page
|
@_page = page
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ global.logger = new Logger
|
|||||||
switch window.location.hostname
|
switch window.location.hostname
|
||||||
when 'localhost'
|
when 'localhost'
|
||||||
global.env = 'development'
|
global.env = 'development'
|
||||||
logger.level = Logger.DEBUG
|
logger.level = Logger.INFO
|
||||||
when 'new.crafting-guide.com'
|
when 'new.crafting-guide.com'
|
||||||
global.env = 'staging'
|
global.env = 'staging'
|
||||||
logger.level = Logger.VERBOSE
|
logger.level = Logger.VERBOSE
|
||||||
@@ -41,5 +41,5 @@ feedbackController.render()
|
|||||||
|
|
||||||
global.router.loadDefaultModPack()
|
global.router.loadDefaultModPack()
|
||||||
|
|
||||||
logger.info "CraftingGuide is ready"
|
logger.info -> "CraftingGuide is ready"
|
||||||
Backbone.history.start pushState:true
|
Backbone.history.start pushState:true
|
||||||
|
|||||||
@@ -44,13 +44,13 @@ module.exports = class BaseModel extends Backbone.Model
|
|||||||
@set @parse text
|
@set @parse text
|
||||||
@trigger Event.change, this
|
@trigger Event.change, this
|
||||||
@trigger Event.sync, this
|
@trigger Event.sync, this
|
||||||
logger.info "#{@constructor.name}.#{@cid} loaded successfully"
|
logger.info => "#{@constructor.name}.#{@cid} loaded successfully"
|
||||||
catch e
|
catch e
|
||||||
logger.error "A parsing error occured: #{e.stack}"
|
logger.error -> "A parsing error occured: #{e.stack}"
|
||||||
@onLoadFailed e.message, 'parsing failed', xhr
|
@onLoadFailed e.message, 'parsing failed', xhr
|
||||||
|
|
||||||
onLoadFailed: (error, status, xhr)->
|
onLoadFailed: (error, status, xhr)->
|
||||||
logger.error "#{@constructor.name}.#{@cid} failed to load: status:#{status}, message:#{error}"
|
logger.error => "#{@constructor.name}.#{@cid} failed to load: status:#{status}, message:#{error}"
|
||||||
@trigger Event.error, this, error
|
@trigger Event.error, this, error
|
||||||
|
|
||||||
# Backbone.Model Overrides #####################################################################
|
# Backbone.Model Overrides #####################################################################
|
||||||
@@ -60,7 +60,7 @@ module.exports = class BaseModel extends Backbone.Model
|
|||||||
return if (@isLoading or @isLoaded) and not options.force
|
return if (@isLoading or @isLoaded) and not options.force
|
||||||
|
|
||||||
url = @url()
|
url = @url()
|
||||||
logger.info "#{@constructor.name}.#{@cid} reading from url: #{url}"
|
logger.info => "#{@constructor.name}.#{@cid} reading from url: #{url}"
|
||||||
|
|
||||||
@trigger Event.request, this
|
@trigger Event.request, this
|
||||||
@loading = w.promise (resolve, reject)=>
|
@loading = w.promise (resolve, reject)=>
|
||||||
@@ -82,7 +82,7 @@ module.exports = class BaseModel extends Backbone.Model
|
|||||||
trigger: (name, model, args...)->
|
trigger: (name, model, args...)->
|
||||||
if @logEvents
|
if @logEvents
|
||||||
argText = ("#{arg}"[0..50] for arg in args).join ", "
|
argText = ("#{arg}"[0..50] for arg in args).join ", "
|
||||||
logger.trace "#{@constructor.name}.#{@cid} triggered event #{name} with args: #{argText}"
|
logger.trace => "#{@constructor.name}.#{@cid} triggered event #{name} with args: #{argText}"
|
||||||
super
|
super
|
||||||
|
|
||||||
# Object Overrides #############################################################################
|
# Object Overrides #############################################################################
|
||||||
|
|||||||
@@ -91,14 +91,14 @@ module.exports = class CraftingPlan extends BaseModel
|
|||||||
# Private Methods ##############################################################################
|
# Private Methods ##############################################################################
|
||||||
|
|
||||||
_addStep: (recipe)->
|
_addStep: (recipe)->
|
||||||
logger.verbose "adding step: #{recipe.slug}"
|
logger.verbose -> "adding step: #{recipe.slug}"
|
||||||
@steps[recipe.slug] = recipe:recipe
|
@steps[recipe.slug] = recipe:recipe
|
||||||
|
|
||||||
_chooseRecipe: (item)->
|
_chooseRecipe: (item)->
|
||||||
return item.getPrimaryRecipe()
|
return item.getPrimaryRecipe()
|
||||||
|
|
||||||
_findSteps: (slug)->
|
_findSteps: (slug)->
|
||||||
logger.debug "finding steps for #{slug}"
|
logger.debug -> "finding steps for #{slug}"
|
||||||
item = @modPack.findItem slug
|
item = @modPack.findItem slug
|
||||||
return unless item?
|
return unless item?
|
||||||
return unless item.isCraftable
|
return unless item.isCraftable
|
||||||
@@ -112,7 +112,7 @@ module.exports = class CraftingPlan extends BaseModel
|
|||||||
@_findSteps toolStack.slug
|
@_findSteps toolStack.slug
|
||||||
|
|
||||||
return if @_hasStep item.slug
|
return if @_hasStep item.slug
|
||||||
logger.debug "reserving: #{item.slug}"
|
logger.debug -> "reserving: #{item.slug}"
|
||||||
@_reservedSteps[item.slug] = recipe
|
@_reservedSteps[item.slug] = recipe
|
||||||
|
|
||||||
for inputStack in recipe.input
|
for inputStack in recipe.input
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ module.exports = class EmailClient
|
|||||||
text: options.body
|
text: options.body
|
||||||
to: [ email:options.toAddress, name:options.toName, type:'to' ]
|
to: [ email:options.toAddress, name:options.toName, type:'to' ]
|
||||||
|
|
||||||
logger.info "sending email: #{util.inspect(body)}"
|
logger.info -> "sending email: #{util.inspect(body)}"
|
||||||
|
|
||||||
w.promise (resolve, reject)=>
|
w.promise (resolve, reject)=>
|
||||||
|
|
||||||
onSuccess = (data, status, request)->
|
onSuccess = (data, status, request)->
|
||||||
logger.info "sending email result: #{util.inspect(data)}, status:#{status}"
|
logger.info -> "sending email result: #{util.inspect(data)}, status:#{status}"
|
||||||
data = if _.isArray data then data[0] else data
|
data = if _.isArray data then data[0] else data
|
||||||
if data.status isnt "sent"
|
if data.status isnt "sent"
|
||||||
reject status:data.status, message:data.reject_reason
|
reject status:data.status, message:data.reject_reason
|
||||||
@@ -45,7 +45,7 @@ module.exports = class EmailClient
|
|||||||
resolve status:data.status
|
resolve status:data.status
|
||||||
|
|
||||||
onError = (request, status, error)->
|
onError = (request, status, error)->
|
||||||
logger.error "sending email failed: #{status}, error:#{error}"
|
logger.error -> "sending email failed: #{status}, error:#{error}"
|
||||||
reject status:status, message:error
|
reject status:status, message:error
|
||||||
|
|
||||||
$.ajax "#{@baseUrl}/messages/send.json",
|
$.ajax "#{@baseUrl}/messages/send.json",
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ module.exports = class Mod extends BaseModel
|
|||||||
@_activeModVersion = modVersion
|
@_activeModVersion = modVersion
|
||||||
@trigger Event.change + ':activeModVersion', this, @_activeModVersion
|
@trigger Event.change + ':activeModVersion', this, @_activeModVersion
|
||||||
|
|
||||||
logger.verbose "#{@slug} switched to version #{@_activeVersion}"
|
logger.verbose => "#{@slug} switched to version #{@_activeVersion}"
|
||||||
|
|
||||||
if @_activeModVersion?
|
if @_activeModVersion?
|
||||||
@listenTo @_activeModVersion, 'all', -> @trigger.apply this, arguments
|
@listenTo @_activeModVersion, 'all', -> @trigger.apply this, arguments
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ module.exports = class Storage
|
|||||||
|
|
||||||
load: (key)->
|
load: (key)->
|
||||||
value = @storage.getItem key
|
value = @storage.getItem key
|
||||||
logger.verbose "loaded #{value} from #{key}"
|
logger.verbose -> "loaded #{value} from #{key}"
|
||||||
return value
|
return value
|
||||||
|
|
||||||
store: (key, value)->
|
store: (key, value)->
|
||||||
@storage.setItem key, value
|
@storage.setItem key, value
|
||||||
logger.verbose "stored #{value} into #{key}"
|
logger.verbose -> "stored #{value} into #{key}"
|
||||||
|
|
||||||
register: (key, model, properties...)->
|
register: (key, model, properties...)->
|
||||||
modelData = @_models[key]
|
modelData = @_models[key]
|
||||||
|
|||||||
Reference in New Issue
Block a user