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
|
||||
|
||||
refresh: ->
|
||||
logger.verbose "#{this} refreshing"
|
||||
logger.verbose => "#{this} refreshing"
|
||||
|
||||
routeLinkClick: (event)->
|
||||
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 {}
|
||||
|
||||
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
|
||||
|
||||
logger.verbose "#{this} rendering with data: #{data}"
|
||||
logger.verbose => "#{this} rendering with data: #{data}"
|
||||
@onWillRender()
|
||||
$oldEl = @$el
|
||||
$newEl = Backbone.$(@_template(data))
|
||||
|
||||
@@ -96,15 +96,15 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
||||
pathname = window.location.pathname
|
||||
|
||||
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
|
||||
else
|
||||
logger.info "Suppressing GA page view: #{pathname}"
|
||||
logger.info -> "Suppressing GA page view: #{pathname}"
|
||||
|
||||
_setPage: (page, 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
|
||||
show = =>
|
||||
@_page = page
|
||||
|
||||
@@ -24,7 +24,7 @@ global.logger = new Logger
|
||||
switch window.location.hostname
|
||||
when 'localhost'
|
||||
global.env = 'development'
|
||||
logger.level = Logger.DEBUG
|
||||
logger.level = Logger.INFO
|
||||
when 'new.crafting-guide.com'
|
||||
global.env = 'staging'
|
||||
logger.level = Logger.VERBOSE
|
||||
@@ -41,5 +41,5 @@ feedbackController.render()
|
||||
|
||||
global.router.loadDefaultModPack()
|
||||
|
||||
logger.info "CraftingGuide is ready"
|
||||
logger.info -> "CraftingGuide is ready"
|
||||
Backbone.history.start pushState:true
|
||||
|
||||
@@ -44,13 +44,13 @@ module.exports = class BaseModel extends Backbone.Model
|
||||
@set @parse text
|
||||
@trigger Event.change, this
|
||||
@trigger Event.sync, this
|
||||
logger.info "#{@constructor.name}.#{@cid} loaded successfully"
|
||||
logger.info => "#{@constructor.name}.#{@cid} loaded successfully"
|
||||
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: (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
|
||||
|
||||
# Backbone.Model Overrides #####################################################################
|
||||
@@ -60,7 +60,7 @@ module.exports = class BaseModel extends Backbone.Model
|
||||
return if (@isLoading or @isLoaded) and not options.force
|
||||
|
||||
url = @url()
|
||||
logger.info "#{@constructor.name}.#{@cid} reading from url: #{url}"
|
||||
logger.info => "#{@constructor.name}.#{@cid} reading from url: #{url}"
|
||||
|
||||
@trigger Event.request, this
|
||||
@loading = w.promise (resolve, reject)=>
|
||||
@@ -82,7 +82,7 @@ module.exports = class BaseModel extends Backbone.Model
|
||||
trigger: (name, model, args...)->
|
||||
if @logEvents
|
||||
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
|
||||
|
||||
# Object Overrides #############################################################################
|
||||
|
||||
@@ -91,14 +91,14 @@ module.exports = class CraftingPlan extends BaseModel
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_addStep: (recipe)->
|
||||
logger.verbose "adding step: #{recipe.slug}"
|
||||
logger.verbose -> "adding step: #{recipe.slug}"
|
||||
@steps[recipe.slug] = recipe:recipe
|
||||
|
||||
_chooseRecipe: (item)->
|
||||
return item.getPrimaryRecipe()
|
||||
|
||||
_findSteps: (slug)->
|
||||
logger.debug "finding steps for #{slug}"
|
||||
logger.debug -> "finding steps for #{slug}"
|
||||
item = @modPack.findItem slug
|
||||
return unless item?
|
||||
return unless item.isCraftable
|
||||
@@ -112,7 +112,7 @@ module.exports = class CraftingPlan extends BaseModel
|
||||
@_findSteps toolStack.slug
|
||||
|
||||
return if @_hasStep item.slug
|
||||
logger.debug "reserving: #{item.slug}"
|
||||
logger.debug -> "reserving: #{item.slug}"
|
||||
@_reservedSteps[item.slug] = recipe
|
||||
|
||||
for inputStack in recipe.input
|
||||
|
||||
@@ -32,12 +32,12 @@ module.exports = class EmailClient
|
||||
text: options.body
|
||||
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)=>
|
||||
|
||||
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
|
||||
if data.status isnt "sent"
|
||||
reject status:data.status, message:data.reject_reason
|
||||
@@ -45,7 +45,7 @@ module.exports = class EmailClient
|
||||
resolve status:data.status
|
||||
|
||||
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
|
||||
|
||||
$.ajax "#{@baseUrl}/messages/send.json",
|
||||
|
||||
@@ -169,7 +169,7 @@ module.exports = class Mod extends BaseModel
|
||||
@_activeModVersion = modVersion
|
||||
@trigger Event.change + ':activeModVersion', this, @_activeModVersion
|
||||
|
||||
logger.verbose "#{@slug} switched to version #{@_activeVersion}"
|
||||
logger.verbose => "#{@slug} switched to version #{@_activeVersion}"
|
||||
|
||||
if @_activeModVersion?
|
||||
@listenTo @_activeModVersion, 'all', -> @trigger.apply this, arguments
|
||||
|
||||
@@ -19,12 +19,12 @@ module.exports = class Storage
|
||||
|
||||
load: (key)->
|
||||
value = @storage.getItem key
|
||||
logger.verbose "loaded #{value} from #{key}"
|
||||
logger.verbose -> "loaded #{value} from #{key}"
|
||||
return value
|
||||
|
||||
store: (key, value)->
|
||||
@storage.setItem key, value
|
||||
logger.verbose "stored #{value} into #{key}"
|
||||
logger.verbose -> "stored #{value} into #{key}"
|
||||
|
||||
register: (key, model, properties...)->
|
||||
modelData = @_models[key]
|
||||
|
||||
Reference in New Issue
Block a user