winston-gelf-transporter
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

winston-gelf-transporter

A Winston transporter for sending GELF messages to your Graylog server.

Setup

Installation

To install with npm

npm install winston-gelf-transporter

Importing

ES6 style

import WinstonGelfTransporter from 'winston-gelf-transporter';

CommonJS

const WinstonGelfTransporter = require('winston-gelf-transporter');

Configuration

You can create a new transporter as such

const transporter = new WinstonGelfTransporter();

You can also pass a TransporterOptions object to the constructor

const transporter = new WinstonGelfTransporter({
  level: string,              // optional - logging level for the transporter
  silent: boolean,            // optional - true to turn off output
  handleExceptions: boolean, 
  version: string,            // Graylog communication version, default 1.1
  host: string,               // Host for your graylog server, default 127.0.0.1
  port: number,               // Port for your graylog server, default 12201
  protocol: string,           // The input protocol for your GELF input, default 'udp'
  hostName: string,           // The name of the host for your Node.js app
  additional: Object          // Additional defaults to add to your messages
})

Usage

All you need to do is add the transporter to your winston logger.

import winston from 'winston';
import WinstonGelfTransporter from 'winston-gelf-transporter';
 
logger = winston.createLogger({
  level: winston,
  transports: [
    winston.transports.Console,
    // Add the Graylog transporter to the logger
    new WinstonGelfTransporter({
      host: 'graylog.example.com',
      port: 12345,
      hostName: 'client.example.com',
      additional: {
        foo: 'Bar'
      }
    })
  ]
});
 
// 1. Log a string
logger.info('Something');
// 2. Log an object
logger.info({ hello: 'world' });
// 3. Log a string message with object
logger.info('Something', { hello: 'world' });
// 4. Log an error
logger.error(new Error());
// 5. Log an error with a message
logger.error(new Error('Something'));
// 6. Or log a message with an error
logger.error('Something', new Error());

The above logging statements will result in the following

1.
{
  "version":"1.1",
  "short_message":"Something",
  "timestamp":1577041912.451,
  "host":"client.example.com",
  "level":6,
  "foo""Bar"
}
2.
{
  "version":"1.1",
  "short_message":"{\"hello\":\"world\"}",
  "timestamp":1577041912.452,
  "host":"client.example.com",
  "level":6,
  "foo""Bar"
}
3.
{
  "version":"1.1",
  "short_message":"{\"message\":\"Something\",\"hello\":\"world\"}",
  "timestamp":1577041912.452,
  "host":"client.example.com",
  "level":6,
  "foo""Bar"
}
4.
{
  "version":"1.1",
  "short_message":"Error",
  "timestamp":1577041912.453,
  "host":"client.example.com",
  "full_message":"Error\n <extended stack trace>",
  "level":3,
  "foo""Bar"
}
5.
{
  "version":"1.1",
  "short_message":"Something",
  "timestamp":1577041912.453,
  "host":"client.example.com",
  "full_message":"Error: Something\n <extended stack trace>",
  "level":3,
  "foo""Bar"
}
6.
{
  "version":"1.1",
  "short_message":"Something",
  "timestamp":1577041912.453,
  "host":"client.example.com",
  "full_message":"Error\n <extended stack trace>",
  "level":3,
  "foo""Bar"
}

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.2
    1,868
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.2
    1,868
  • 1.0.1
    0
  • 1.0.0
    0

Package Sidebar

Install

npm i winston-gelf-transporter

Weekly Downloads

1,868

Version

1.0.2

License

MIT

Unpacked Size

19.1 kB

Total Files

11

Last publish

Collaborators

  • bytetechnology.engops
  • ujwal.setlur