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
npm install winston @epegzz/winston-dev-console
or
yarn add winston @epegzz/winston-dev-console
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"));
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"));
Configuration object.
Type: DevConsoleFormatOptions
util.inspect()
configuration object.
Type: Object
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
Wheather or not to separate each log statement with a blank line.
Type: Boolean
Default: true
Wheather or not to show timestamps
During development the timestamps are usually more noise then helpful, therefore disabled by default.
Type: Boolean
Default: false
This project is inspired by and partly shamelessly copied from winston-console-format