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:
Andrew Miner
2015-02-09 20:41:12 -08:00
parent 3790c26c5c
commit fc0c117083
8 changed files with 22 additions and 22 deletions
@@ -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))
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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
+5 -5
View File
@@ -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 #############################################################################
+3 -3
View File
@@ -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
+3 -3
View File
@@ -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",
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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]