flannel
v0.10.0
Published
It's easy to handle logs when your coffee-script classes wear Flannel
Downloads
5
Maintainers
Readme
flannel
Winston helper mixins for coffee-script classes
"It's easy to handle logs when your coffee-script classes wear Flannel"
Installation
npm install --save flannel
Options
logPrefix string
the prefix to use when logging fns are called. This belongs as a Class or Instance variable on the target Class.
transports map
the winston transports to use, and their options. defaults to console:
console:
level: "info"
see also Winston Transports
Flannel.enabled bool
set to false to squelch Flannel from sending logs. defaults to true
.
Flannel.logLevels array
the level names to use. defaults to ["debug", " info", " warn", " err"]
.
see also Winston#using-custom-logging-levels
Flannel.logLevelColors map
the colors for each log level. names must match logLevels. defaults to:
" err": "red"
" warn": "yellow"
" info": "green"
"debug": "blue"
extending Flannel
@_dependencyMap
and all other class vars and methods can be overwritten. Nothing is private.
Methods
Flannel.init(transports) returns Flannel
Initialize the Flannel class. It is designed as a singleton, so that logs from many classes are piped out through the same transports.
Flannel.shirt(obj)
Applies Flannel.shirt()
to obj
.
Flannel.shirt() returns map
Get the map of logLevels and their respective functions. defaults to:
err: (objs...) ->
warn: (objs...) ->
info: (objs...) ->
debug: (objs...) ->
log: (objs...) -> # log() is an alias of debug() for convenience.
Flannel.morgan(level = "info", format = "combined", options = {})
Initalizes expressjs/morgan and pipes it into winston. No arguments are required.
Usage
Initialization
Flannel = require "flannel"
Flannel.init
Console:
level: "debug"
Logentries:
token: "abcd-1234-xxxx"
Instance methods
class YourApp
logPrefix: "(YourApp)"
constructor: ->
Flannel.shirt this
@warn "timber"
...
Class methods
class YourSingleton
@someMethod: ->
...
Flannel.shirt YourSingleton
YourSingleton.ClassMethod = -> @info "and I'm OK"
With expressjs/morgan
class ExpressApp
constructor: ->
app = express()
app.use Flannel.morgan()
Flannel.shirt this
License
MIT Licensed. (C) 2016 doublerebel