Winston pre-formatted logger
Install
npm install winston-preformatted-logger
yarn add winston-preformatted-logger
Usage
How to initialise the module
In your project, first declare the module
const Logger = require('winston-preformatted-logger');
Next, create a new instance
// Example
//Optional - defaults
const logOptions = {
logFolder: './logs',
logLevel: 'info',
logFilename: '%DATE%'
// ONLY ANSI colors!
colors: {
INFO: "\u001B[0m",
DEBUG: "\u001B[37m",
WARN: "\u001B[33m",
ERROR: "\u001B[31m"
}
}
const log = new Logger(logOptions).logger;
Using the module
Possible log levels are:
- info
- debug
- warn
- stack //Use this instead of error!
A typical log line will look something like this:
log.info("info message");
2018-05-11 12:49:09.641 [INFO]: info message
However, it is possible to include 'from', 'label', and 'metadata' (All optional). The log line format is constructed as
DATE TIME [LEVEL][FROM]: [LABEL] - info message
{
extra: "information"
}
To fully use all options a basic info log line would look like this:
log.info("info message", {from: "readMe.md", label:"example", meta: {author: {firstName: "Max", lastName: "van de Laar"}}});
2018-05-11 13:23:09.044 [INFO][readMe.md]: example - info message
{
"author": {
"firstName": "Max",
"lastName": "van de Laar"
}
}
Logger
new Logger([module], [settings], [logOptions])
Param | Type | Default | Description |
---|---|---|---|
[module] | Object |
Add the current module to determine the root info | |
[settings] | Object |
Destination of the generated log files. | |
[settings.logFolder] | string |
"./logs" |
Destination of the generated log files. |
[settings.logLevel] | string |
"info" |
The log level. |
[settings.logFilename] | string |
"%DATE%" |
The log file's name. |
[settings.logFileDatePattern] | string |
"YYYY-DD-MM" |
The date pattern inside the log file's name. |
[settings.colors] | Object |
Colors of the log levels (Uppercase). | |
[logOptions] | Object |
Sets the 'from' options in the log line. | |
[logOptions.from] | string |
Sets the 'from' options in the log line. | |
[logOptions.label] | string |
Sets the 'label' options in the log line. | |
[logOptions.meta] | Object |
Include default metadata to the log line. |