![Build Status](https://travis-ci.org/logzio/winston-logzio.svg?branch=master)
winston-logzio
A Winston transport wrapper for Logz.io
Installation
npm install winston-logzio --save
Sample usage
var winston = require('winston');
var logzioWinstonTransport = require('winston-logzio');
var loggerOptions = {
token: '__YOUR_API_TOKEN__',
host: 'listener.logz.io',
type: 'YourLogType'
};
winston.add(logzioWinstonTransport, loggerOptions);
winston.log('info', 'winston logger configured with logzio transport');
Make sure you replace __YOUR_API_TOKEN__
with your own logz.io api token.
If you do not have a Logz.io account, you can sign up for a free trial here
Details
This winston plugin, basically just wraps our nodejs logzio shipper.
If you want to configure the nodejs logger, any parameters sent to winston when initializing the transport
(what is held in the variable loggerOptions
in the sample above) will be passed to the logzio nodejs logger itself.
Logs in my console
The winston logger by default sends all logs to the console.
You can easily disable this by adding this line to your code :
winston.remove(winston.transports.Console);
Logs UncaughtException before Node process exit
To enable logzio to log the last UncaughtException before Node exits,
- you instantiate winston logger and injecting into it the winston-logzio transport as well as the exceptionHandlers
- set your Node process to trap UncaughtException
var callback = function() {} ;
var winston = require('winston');
var winstonLogzIO = require( 'winston-logzio' );
var loggerOptions = {
token: '__YOUR_API_TOKEN__'
};
var logzIOTransport = new (winstonLogzIO)(loggerOptions);
var logger = new(winston.Logger)({
transports: [
logzIOTransport
],
exceptionHandlers: [
logzIOTransport
],
exitOnError: true
});
process.on('uncaughtException', function (err) {
logger.error("UncaughtException processing: %s", err);
logzIOTransport.flush( function(callback) {
process.exit(1);
});
});