customlogging.coffee 917 Bytes
""" A basic custom logging implementation. The idea is to (extremely) verbosely
    log every received resource.
"""

casper = require('casper').create
    # Every time a resource is received, a new log entry is added to the stack
    # at the 'verbose' level.
    onResourceReceived: (self, resource) ->
        infos = []
        props = ["url", "status", "statusText", "redirectURL", "bodySize"]
        infos.push resource[prop] for prop in props
        infos.push "[#{h.name}: #{h.value}]" for h in resource.headers
        @log infos.join(', '), 'verbose'
    verbose: true       # we want to see the log printed out to the console
    logLevel: 'verbose' # of course we want to see logs to our new level :)


# add a new 'verbose' logging level at the lowest priority
casper.logLevels = ['verbose'].concat casper.logLevels

# test our new logger with google
casper.start 'http://www.google.com/'
casper.run()