node package manager



A Syslog transport for winston using posix.


Installing winston-syslog

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


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).

Log Levels

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');

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
  • warn
  • error
  • crit
  • alert