0.6.2 • Published 4 years ago

l0gg3r v0.6.2

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

l0gg3r

Minimalistic logging library for javascript.

Install

npm install l0gg3r

Usage

Basic logger

const logger = require("l0gg3r")();

logger.info("hello");

Output:

{"level":20,"timestamp":1567945561139,"message":"hello"}

Full option logger

const { resolve } = require("path");
const { hostname } = require("os");
const l0gg3r = require("l0gg3r");

const { transports, serializers } = l0gg3r;

let logger;

if(process.env.NODE_ENV === "production"){
  logger = l0gg3r({
    transports: [
      transports.consoleTransport({
        level: "info",
        serializer: serializers.json({
          redact: ["message.c", "message.f.*"],
          meta: {
            pid: process.pid,
            hostname: hostname()
          }
        })
      })
    ]
  });
} else {
  logger = l0gg3r({
    transports: [
      transports.consoleTransport({
        level: "debug",
        serializer: serializers.prettyConsole()
      }),
      transports.fileTransport({
        level: "debug",
        serializer: serializers.prettyFile(),
        file: resolve(__dirname, "./debug.log")
      }),
      transports.fileTransport({
        level: "error",
        serializer: serializers.prettyFile(),
        file: resolve(__dirname, "./error.log")
      })
    ]
  });
}

Redact

Using fast-redact for redactions. Look at its paths options to know what you can pass.

Meta

An object that will be joined with the log object.

Levels

const levels = {
  debug: 10,
  info: 20,
  warn: 30,
  error: 40
};

prettyConsole

prettyConsole

Custom transports and serializers

A brief look at the code should tell you how to make them.

Note

Don't use multiple transports in production.