@backs/logger
TypeScript icon, indicating that this package has built-in type declarations

1.1.16 • Public • Published

Back's logger

Join my discord server or visit my website.

What's this?

It's a package that facilitates logging to console by allowing you to add many different loggers and styles. Also provides you with a progress bar and table out of the box. Works out of the box with no configuration needed. Uses under the hood:

  • winston
  • colorette
  • progress
  • table
  • moment

Usage examples

JS

    const createLogger = require("@backs/logger")

    const logger = createLogger()

    logger.log("Test\n%bl_b", "This text is blue in bold.")
    /* Prints
        Test
        This text is blue in bold.
    */

TS

    import createLogger from "@backs/logger"

    const logger = createLogger()

    logger.log("Test\n%bl_b", "This text is blue in bold.")
    /* Prints
        Test
        This text is blue in bold.
    */

Customization

Since it uses winston under the hood, you can use custom levels, colors, handlers, transports. You can also disable colors if needed. Check options down below.

Options

  • levels?: string[] - Array of winstom levels from most important to least important. Defaults to ["error", "warn", "debug", "log", "info"].
  • colors?: Record<string, Color> - An object that contains a function that takes a string or number and returns a string, for each log level. Defaults to { error: red, warn: yellow, debug: magenta, log: blue, info: green }.
  • transports?: transports[] - Array of winston transports. Defaults to a Console transport and File transport (error level only) with custom formats.
  • log?: Record<T[number], boolean | (() => boolean)> - An object containing levels as values and a boolean or a function returning a boolean as value to decide whether or not to log to the transports provided.
  • handlers?: Record<string, (logger: WinstonLogger, message: any, ...args: any[]) => void> - An object containing objects for each level containing a function to handle that level. Provides the winston logger, a message which can be any type, and an array of arguments.
  • disableColors?: boolean - Whether or not to disable colors in the console.

Color & Modifiers

You can pass into the message argument replacements formated as such %color_modifiers. These will be replaced by the arguments in order. Both the color and the modifiers are optional.

  • Color only: %b
  • Modifier only: %_u
  • Color and modifier: %b_u
  • Multiple modifiers: %b_u,s

All possible colors

{
    b: black,
    bb: bgBlack,
    bbr: blackBright,
    bbbr: bgBlackBright,
    r: red,
    br: bgRed,
    rbr: redBright,
    brbr: bgRedBright,
    g: green,
    bg: bgGreen,
    gbr: greenBright,
    bgbr: bgGreenBright,
    y: yellow,
    by: bgYellow,
    ybr: yellowBright,
    bybr: bgYellowBright,
    bl: blue,
    bbl: bgBlue,
    blbr: blueBright,
    bblbr: bgBlueBright,
    m: magenta,
    bm: bgMagenta,
    mbr: magentaBright,
    bmbr: bgMagentaBright,
    c: cyan,
    bc: bgCyan,
    cbr: cyanBright,
    bcbr: bgCyanBright,
    w: white,
    bw: bgWhite,
    wbr: whiteBright,
    bwbr: bgWhiteBright,
    gr: gray,
    black: black,
    bgBlack: bgBlack,
    blackBright: blackBright,
    bgBlackBright: bgBlackBright,
    red: red,
    bgRed: bgRed,
    redBright: redBright,
    bgRedBright: bgRedBright,
    green: green,
    bgGreen: bgGreen,
    greenBright: greenBright,
    bgGreenBright: bgGreenBright,
    yellow: yellow,
    bgYellow: bgYellow,
    yellowBright: yellowBright,
    bgYellowBright: bgYellowBright,
    blue: blue,
    bgBlue: bgBlue,
    blueBright: blueBright,
    bgBlueBright: bgBlueBright,
    magenta: magenta,
    bgMagenta: bgMagenta,
    magentaBright: magentaBright,
    bgMagentaBright: bgMagentaBright,
    cyan: cyan,
    bgCyan: bgCyan,
    cyanBright: cyanBright,
    bgCyanBright: bgCyanBright,
    white: white,
    bgWhite: bgWhite,
    whiteBright: whiteBright,
    bgWhiteBright: bgWhiteBright,
    gray: gray
}

All possible modifiers

{
    d: dim,
    h: hidden,
    i: italic,
    u: underline,
    s: strikethrough,
    b: bold,
    r: reset,
    dim: dim,
    hidden: hidden,
    italic: italic,
    underline: underline,
    strikethrough: strikethrough,
    bold: bold,
    reset: reset
}

NOTE:

You can only pass one color unlike modifiers which can be stacked by seperating them with a comma.

Additional Methods & Properties

  • resolveLevel: Method - This just returns the level you want but padded by spaces so all levels are the same length.
  • color: Method - Takes a function that takes a string or number and returns a string. It either applies the color to the string or returns it as is depending on whether or not colors are disabled.
  • stringifyArg: Method - Stringifies whatever you pass into it.
  • formatArgs: Method - Takes a message as the first argument and an array of arguments as the second one. This is the function that handles all colors and modifiers.
  • table: Method - Creates a table. Documentation available here.
  • createTableStream: Method - Creates a table stream. Documentation available here.
  • progress: Method - Creates a progress bar. Documentation available here.
  • isColorEnabled: Property - Returns a boolean that indicates whether colors are enabled or not.
  • logger: Property - Returns the winston logger used under the hood.

Package Sidebar

Install

npm i @backs/logger

Weekly Downloads

4

Version

1.1.16

License

MIT

Unpacked Size

65.1 kB

Total Files

9

Last publish

Collaborators

  • backiscute