Logger
Easy to use (config-based) wrapper around winston logger
Available Transports
- Console
- File
- SysLog (currently on hold)
Available log levels
7
-> debug
6
-> info
5
-> notice
4
-> warning
3
-> error
2
-> crit
1
-> alert
0
-> emerg
Installation
npm i @c8/logger
Usage
var logger = require('logger')
var config = {
transports: {
console: {
level: ['info', 'debug'],
options: {}
},
file: {
level: ['error', 'crit', 'alert', 'emerg'],
options: {}
}
}
}
logger.init(config)
logger.debug('This is the debug message')
Console logger options: console.options
File logger options: file.options
Middleware
In order to use the logger as an Express middleware you should add:
var loggerMiddleware = logger.middleware.Express
server.use(loggerMiddleware.debug)
// or
server.get('/', loggerMiddleware.debug, function (req, res) {
res.status(200)
}
The middleware logger uses the same config you pass in logger.init(/*config*/)
and depending on the log level method you use the middleware with it will be sent to the transport specified in the config.
The middleware can be used globally before any route server.use(loggerMiddleware.debug)
or route specific server.get('/route', loggerMiddleware.debug, function (req, res) {...})
All error logs are pushed using levels error
, crit
, alert
, emerg
and should be defined under the route declaration:
// ^^^ all routes are defined above ^^^
// use 'error' method for error printing
server.use(loggerMiddleware.error)
Formatting
Logger has a default log messages formatting. There are 2 different use-cases on how the formatting will look like:
logger.debug('log message')
{{timestamp}} {{hostname}} {{logLevel}} {{logMessage}}
logger.debug('log message', new Error('My Log Error'))
{{timestamp}} {{hostname}} {{errorType}}:{{errorMessage}} {{path:line:column}} {{logLevel}} {{logMessage}}
Tests
Run the following commands:
npm run test
for unit testsnpm run standard
for StandardJS compilingnpm run coverage
for code coverage
Licence
MIT Licence
© Copyright 2016 C8 MANAGEMENT LIMITED