A Syslog transport for winston using posix.
$ 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
).
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
- warn
- error
- crit
- alert