winston-posix-syslog

A syslog transport for winston that uses posix

winston-posix-syslog

A Syslog transport for winston using posix.

  $ npm install winston
  $ npm install winston-posix-syslog

tldr;?: The winston-syslog transport is amazing, but it only capable of communicating with syslog using udp or tcp. I needed something in my environment that uses the C bindings.

To use the PosixSyslog transport in winston, you simply need to require it and then either add it to an existing winston logger or pass an instance to a new winston logger:

  var winston = require('winston');
  var PosixSyslog = require('winston-posix-syslog').PosixSyslog;
 
  winston.add(PosixSyslog, options);
 
  winston.log('info', 'I AM the one who knocks.');

The PosixSyslog transport takes the following options:

  • identity: The name of the application (Default: process.title).
  • facility: Syslog facility to use (Default: local0).
  • cons: Write directly to system console if there is an error while sending to system logger (Default: true).
  • ndelay: Open the connection immediately (Default: true).
  • pid: Include PID with each message (Default: true).
  • nowait: Don't wait for child processes that may have been created while logging the message (Default: true).
  • odelay: Opening of the connection is delayed until syslog() is called (Default: false).

Because syslog only allows a subset of the levels available in winston, levels that do not match will be ignored. Therefore, in order to use winston-posix-syslog effectively, you should indicate to winston that you want to use the syslog levels:

  var winston = require('winston');
  winston.setLevels(winston.config.syslog.levels);

The PosixSyslog transport will only log to the level that are available in the syslog protocol. These are (in increasing order of severity):

  • debug
  • info
  • notice
  • warning
  • error
  • crit
  • alert
  • emerg