amqp-winston

1.0.7 • Public • Published

Winston AMQP

A transport for Winston [https://www.npmjs.com/package/winston] which sends logging events to an AMQP-capable host, such as RabbitMQ.

Installation

npm install winston
npm install amqp-winston

Usage

var winston = require('winston');

//
// Requiring `winston-amqp` will expose 
// `winston.transports.AMQP`
//
require('winston-amqp');

winston.add(winston.transports.AMQP, options);

The AMQP transport takes the following options:

  • name: The name of the logger. Defaults to the final path/script, e.g. "myapp/index.js". The name is included in the AMQP message
  • level: The level of the logger
  • host: The location of the AMQP server. See below for a description of the defaults and format of this value:
  • exchange: The AMQP exchange name. This is optional is overrides the value specified by the 'host' option
  • routingKey: The AMQP routingKey. This is optional is overrides the value specified by the 'host' option. A falsy value causes the routingKey to be set from the 'name' option.
  • exchangeOptions: Optional. As specified by 'connection.exchange' in [https://www.npmjs.com/package/amqp]
  • publishOptions: Optional. As specified by 'exchange.publish' in [https://www.npmjs.com/package/amqp]

Host option

This can be either a URL object or a String. The format of the String (and URL properties) is:

			amqp://(user):(pass)@(host|ip):(port)/(exchangeName)/(routingKey)

To simplify configuration (especially in clustered environments), the transport module first checks the 'host' option passed when the logger in created, then the environment variable WINSTON_AMQP and finally defaults to 'amqp://guest:guest@rabbit-logger:5672/winston/winston'.

Events

winston-amqp emits an 'error' event if it cannot connection to the AMQP exchange.

Log Messages

The messages posted to the AMQP server are in JSON format and consist of the following fields:

{
  "logHostName": "app.example.com",		// The 'hostname' of the app generating the logging request
  "timestamp": 1421752681391,			// The (local) time the log was generated
  "loggerName": "winston",				// The constant 'winston', to allow for filtering by whatever is using the data
  "name": "winston-amqp/test.js",		// The name of the logger, which defaults to the final 'path/script' of the node process generating the log
  "level": "info",						// The level of the log request
  "msg": "Log me",						// The logged message
  "meta": {								// Any meta-data in the log request
    "now": "2015-01-20T11:18:01.388Z"
  }
}

Package Sidebar

Install

npm i amqp-winston

Weekly Downloads

3

Version

1.0.7

License

ISC

Last publish

Collaborators

  • matatbread