adsl v0.2.0
adsl
Another dead simple logger inspired by the awesome console-log-level.
A dead simple logger. Will log to STDOUT or STDERR depending on the chosen log
level. It uses
console.info, console.warn and console.error and hence supports the same API.
## Log levels sets supported
npm (default)
{ error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }console-log-level:
{ fatal: 0, error: 1, warn: 2, info: 3, debug: 4 }rfc5424:
{ emerg: 0, alert: 1, crit: 2, error: 3, warning: 4, notice: 5, info: 6, debug: 7 }Installation
npm install adslExample usage
// example.js
const adsl = require('adsl')
const colors = require('colors')
const fs = require('fs')
const os = require('os')
function colorsTransport (styles, msg, shouldLog, lvl, lvlIndex) {
if (colors.supportsColor && styles[lvl]) {
msg = styles[lvl](msg)
}
return adsl.defaultTransport(msg, shouldLog, lvl, lvlIndex)
}
function streamTransport (wstream, msg, shouldLog, lvl, lvlIndex) {
wstream.write(`${lvlIndex} ${new Date()} ${msg}${os.EOL}`)
}
var logWriteStream = fs.createWriteStream('log.txt')
const log = adsl({
level: 'info',
prefix(level) {
return level.toUpperCase()
},
transport: [
streamTransport.bind(null, logWriteStream),
colorsTransport.bind(null, {
trace: colors.grey,
debug: colors.grey,
info: colors.cyan,
warn: colors.red,
error: colors.bgRed,
fatal: colors.bgRed
})
]
})
log.info('current level:', log.level, log.levelIndex)
log.info('visible')
log.debug('invisible')
log.level = 'debug'
log.info('current level:', log.level, log.levelIndex)
log.info('foo')
log.debug('bar')
logWriteStream.end(os.EOL)
Options
Configure the logger by passing an options object:
var log = require('adsl')({
level: 'info',
levels: 'npm',
prefix: function (level) {
return level.toUpperCase()
},
defaultTransport: function (msg, shouldLog, lvl, lvlIndex) {
if (shouldLog) {
console.log(lvlIndex, lvl, msg)
}
}
})level
A string to specify the log level.
Defaults to :
adsl.defaultLevel = "info"
levels
An string to specify the log levels set used.
Defaults to:
adsl.defaultLevels = "npm"
prefix
Specify this option if you want to set a prefix for all log messages.
This must be a string or a function that returns a string.
transport
Function called by the logger at each logging operation.
This must be a function or an array of functions.
Defaults to : adsl.defaultTransport =
function (msg, shouldLog, lvl, lvlIndex) {
shouldLog &&
(console[ADSL.outputMap[lvl] || lvl] || console.log).call(console, msg)
}License
MIT