Spines build in Log utility inherently only supports controllers using "(App)" as an application-wide Prefix.
As a result you soon loose track of your debug output when its about dozens of controllers and models.
Here is how can get the best out of Spines build in Log Utility supporting not only controllers but also your models:
writing a model extender "model_extender":
Spine = require("spine")
$ = Spine.$
Model = Spine.Model
Log = Spine.Log
Model.Extender =
extended: ->
Extend =
trace: true
logPrefix: '(' + @className + ')'
Include: ->
trace: true
logPrefix: '(' + @className + ')'
@include Log
@extend Log
@extend Extend
@include Include
module?.exports = Model.Extender
using your extender in your model "my_model":
Spine = require("spine")
$ = Spine.$
Model = Spine.Model
Extender = require("<path_from_within_your_app>/model_extender")
class MyModel extends Spine.Model
@extend Extender
@configure 'MyModel', .....
@coolModelConstructorFunction: -> @log 'what a super function' # output: (MyModel)what a super function
coolModelFunction: -> @log 'what a cool function' # output: (MyModel)what a cool function
module?.exports = MyModel
writing a controller extender "controller_extender":
Spine = require("spine")
$ = Spine.$
Controller = Spine.Controller
Controller.Extender =
extended: ->
Include =
init: ->
@trace = true
@include Include
module?.exports = Controller.Extender
using your extender in your controller "sample_controller":
Spine = require("spine")
$ = Spine.$
Controller = Spine.Controller
Extender = require("<path_from_within_your_app>/controller_extender")
class SampleController extends Spine.Controller
@extend Extender
constructor: ->
super
someFunction: ->
@log 'log test' # output: (SampleController)log test
After you logged in, logging can be switched on/off clicking 'Trace' in the upper right button submenu