@tdsoft/logger

Flexible logging tool with descriptive logs, and ease of extendibility

Usage no npm install needed!

<script type="module">
  import tdsoftLogger from 'https://cdn.skypack.dev/@tdsoft/logger';
</script>

README

Node Logger

Logger package supporting log levels, log scopes, request-id's stored by als. Customizable log outputs and formatters. Note it's in early form, so API changes might come in further.

Usage examples

Initializaton for logging in file

const logger = require("@tdsoft/logger").create("log/namespace");
logger.error("Error level message");
logger.warn("Warn level message");
logger.info("Info level message"); logger.log("Info level message");
logger.debug("Debug level message"); 
logger.silly("Silly level message");
const {LogLook} = require("@tdsoft/logger");
logger.silly(new LogLook().blue("Singing logs blues")); // Hopeful blue message (WiP)

Output initialization

const Logger = require("@tdsoft/logger");
new Logger.outputs.StdOut({filters: [new Logger.LogFilter("*", Logger.LOG_LVL.WARN)]}); // will log only WARNS & ERRORS from all (*) namespaces
Note on using socketio-logger-server as output
const socketIOLogOut = new Logger.outputs.SocketIO({socketIOServerUrl: "http://localhost:3002/", filters: [new Logger.LogFilter("scope", Logger.LOG_LVL.INFO)]});

Stylizing logs - LogLook chainable class

const look = new LogLook().italic.blue("Hello").default(" ").bold.bgYellowBright.black("World!").default("Seems fine");
console.log(look.looks);

Then looks array contains all of the stylized context which furter can be used with any of the ouptut formatters if proper processing was prepared:

[ { style: 'italic', color: 'blue', txt: 'Hello', start: 0, end: 5 },
  { style: null,
    color: null,
    bgColor: null,
    txt: ' ',
    start: 5,
    end: 6 },
  { style: 'bold',
    bgColor: 'yellowBright',
    color: 'black',
    txt: 'World!',
    start: 6,
    end: 12 },
  { style: null,
    color: null,
    bgColor: null,
    txt: 'Seems fine',
    start: 12,
    end: 22 } ]

(There's already one for console (chalk), html WiP)

Using formatters

...

Custom log output - Implementing LoggerOutput interface

...