JSPM

@epegzz/winston-dev-console

1.3.4
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1337
    • Score
      100M100P100Q123488F
    • License MIT

    Winston@3 console format aimed to improve development UX

    Package Exports

    • @epegzz/winston-dev-console
    • @epegzz/winston-dev-console/dist/index.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@epegzz/winston-dev-console) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    winston-dev-console

    A Winston@3 console format for development (based on winston-console-format) that aims to improve NodeJS development UX by

    • adding the source of the logging statement to the log output
    • optimizing readability of each log statement through log statement separation, output colorization and arg pretty printing

    Demo

    Real world screenshot:

    Install

    npm install winston @epegzz/winston-dev-console

    or

    yarn add winston @epegzz/winston-dev-console

    Usage TypeScript

    import { createLogger, format, transports } from "winston";
    import winstonDevConsole from "@epegzz/winston-dev-console";
    import util from "util";
    
    let log = createLogger({
      level: "silly", // or use process.env.LOG_LEVEL
    });
    
    // Note: You probably only want to use winstonDevConsole during development
    log = winstonDevConsole.init(log);
    log.add(
      winstonDevConsole.transport({
        showTimestamps: false,
        addLineSeparation: true,
      })
    );
    
    log.silly("Logging initialized");
    log.debug("Debug an object", { make: "Ford", model: "Mustang", year: 1969 });
    log.verbose("Returned value", { value: util.format });
    log.info("Information", {
      options: ["Lorem ipsum", "dolor sit amet"],
      values: ["Donec augue eros, ultrices."],
    });
    log.warn("Warning");
    log.error(new Error("Unexpected error"));

    Usage JavaScript

    const { createLogger, format, transports } = require("winston");
    const winstonDevConsole = require("@epegzz/winston-dev-console").default;
    const util = require("util");
    
    let log = createLogger({
      level: "silly", // or use process.env.LOG_LEVEL
    });
    
    // Note: You probably only want to use winstonDevConsole during development
    log = winstonDevConsole.init(log);
    log.add(
      winstonDevConsole.transport({
        showTimestamps: false,
        addLineSeparation: true,
      })
    );
    
    log.silly("Logging initialized");
    log.debug("Debug an object", { make: "Ford", model: "Mustang", year: 1969 });
    log.verbose("Returned value", { value: util.format });
    log.info("Information", {
      options: ["Lorem ipsum", "dolor sit amet"],
      values: ["Donec augue eros, ultrices."],
    });
    log.warn("Warning");
    log.error(new Error("Unexpected error"));

    API

    winstonDevConsole.format(options)

    options

    Configuration object.

    Type: DevConsoleFormatOptions

    options.inspectOptions

    util.inspect() configuration object.

    Type: Object

    options.basePath

    Used to remove the base path of the project when showing the file path of the log statement. By default anything in the path before (and including) the src folder will be removed.

    Type: String

    options.addLineSeparation

    Wheather or not to separate each log statement with a blank line.

    Type: Boolean
    Default: true

    options.showTimestamps

    Wheather or not to show timestamps
    During development the timestamps are usually more noise then helpful, therefore disabled by default.

    Type: Boolean
    Default: false

    Acknowledgements

    This project is inspired by and partly shamelessly copied from winston-console-format