logger
Opinionated wrapper and configurator for the winston logging toolkit.
The following transports are supported:
- Elasticsearch transport using a specific transformer
- Console (Winston built-in transport)
- File (Winston built-in transport)
These transports can be added and configured with a corresponding property in the options hash:
"console": {
"handleExceptions": false,
"level": "silly",
"colorize": true,
"prettyPrint": true
},
"file": {
...
},
"elasticsearch": {
...
}
The logger returns a Winston logger instance which has methods that correspond to the following levels:
- silly
- verbose
- debug
- info
- warn
- error
- log (generic)
In addition there is a generic log()
function.
Notes
Console logger
A custom format is defined that outputs the rid (request-id) if it is set using cls-rtracer module.
Elastichsearch logger
The following changes and transformations are applied to log messages:
- Adds a
@timestamp
field with the current date/ time - Adds a
host
property with the current host name - Adds a
rid
(request-id) based on cls-rtracer
This module also comes with a suitable mapping template and an index pattern that can be imported in Kibana.
Usage
Instantiation
let logger = createLogger(opts);
Logging
Logging in general:
logger.<level>('Textual message');
// or
logger.log(<level>, 'Textual message');
The parameters for the log statements are built like this:
logger.info('Textual message');
// or
logger.info({ key: 'value' });
// or
logger.info('Textual message', { key: 'value' });
No other variants are supported.
See test.ts and the Winston documentation.