logginator
v1.5.0
Published
Creates an instance of TaggedLogger
Downloads
134
Readme
Installation
npm install logginator
Usage
var log = require('logginator')(config);
log.info("I am a log message");
Config
Optional. If left unspecified, logginator will default to console output.
To configure the backends, specify an array with the desired backend configurations, for example:
var log = require('logginator')([
{
"transport": "console"
}, {
"transport": "syslog"
}
]);
console
To output logs to the console, use this configuration:
{
"transport": "console"
}
Additional options are:
level
: The minimum level of log messages to output to this logger, for example"info"
. Keep this unset to allow all messages that are accepted by the logger objecthandleExceptions
: Set totrue
to intercept unhandled exceptions and output them to this log targetexceptionsLevel
: The log level at which to log exceptions. Defaults to"error"
humanReadableUnhandledException
: Format exception log output in a more readable fashion
syslog
To output logs to syslog, this configuration is sufficient:
{
"transport": "syslog"
}
Additional options are:
appname
: The name this process should use to identify itself to syslog. By default, logginator tries to deduce the name of the node project that uses logginator as a module.localhost
: The hostname of the current machine, as sent to syslog. Defaults toos.hostname()
.facility
: The facility, in syslog terminology, that the logger should log to. This concept only makes sense in a syslog setting, so refer to syslog documentation if you want to make an informed choice. Otherwise, stick with the default value, which is"local0"
.protocol
: The protocol via which to log. The default, and recommended, value, is"unix"
, which makes logging go via Unix datagram sockets to the path specified in thepath
option. Other choices are"tcp4"
,"tcp6"
,"udp4"
and"udp6"
, which all requirehost
andport
to be specified.path
: The path to log to when using"unix"
forprotocol
. If not set, logginator will try to deduce the default system log pipe by trying/dev/log
,/var/run/syslog
and/var/run/log
in order. If all of these fail, logginator will raise an exception.host
andport
: The host and port pair for the TCP or UDP log target if using any other protocol than"unix"
. Note that the target syslog daemon must be configured to accept connections on the specified protocol.
slack
Configuration options:
webhook_url
: required The webhook URL, something likehttps://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ
level
: If specified, this logger will only log messages at the specified level of importance and more important messagescustom_formatter
: afunction (level, msg, meta)
which returns a Slack payload object
Additionally, you can specify any Slack message parameters (such as username
and channel
), and it will be applied as a fallback if the given argument is
not specified per message.
For example, a valid configuration could look like this:
{
"transport": "slack",
"webhook_url": "https://hooks.slack.com/services/XX/YY/ZZ",
"channel": "#test-channel",
"username": "ErrorBot",
"level": "error",
"handleExceptions": true
}