MaxvandeLaar / winston-preformatted-logger

A WinstonJS logger which is already set to certain needs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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"
    }
}

#Documentation

Logger

Kind: global class

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.

About

A WinstonJS logger which is already set to certain needs

License:MIT License


Languages

Language:JavaScript 100.0%