JSPM

  • Created
  • Published
  • Downloads 45026
  • Score
    100M100P100Q154986F
  • License MIT

Winston-lite-esque Log lib for terminal and browser debugging, with piles of unignorable log tags and marker styles.

Package Exports

  • mad-logs
  • mad-logs/lib/index.js
  • mad-logs/lib/node
  • mad-logs/lib/node.js
  • mad-logs/lib/shared
  • mad-logs/lib/shared.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 (mad-logs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme


mad-logs

  • Colourful, obtrusive, Typescript-friendly logs for the browser console and NodeJS.
    • Completely isomorphic
  • As with Winston, lets you alter the amount of text shown based on current log level:
    • Automatic handling of any of the following LOG_LEVEL environment variable values:
      • silly, verbose, debug, info, warn, error, wtf
  • Factory for file-specific logging: logFactory
  • Over 45 separate styles to keep log output different from file-to-file for easier debugging

Installation

npm install --save mad-logs

...or...

yarn add mad-logs

Usage (browser, commonJS)

Import the library

// my-fun-file.ts
import {logFactory, Styles} from 'mad-logs';

Build a logger with the log factory

const log = logFactory(`my-fun-file.tsx`, Styles.angryBird);

Do some mad, mad logging!

log.silly('display me on the browser console, but only if the log level is set to "silly"');

log.verbose(
    'display me on the browser console, but only if the log level is "verbose" ' +
    'or higher (verbose or silly mode)'
);

log.info(
    'display me on the browser console, but only if the log level is "info" ' +
    'or higher (info, verbose, or silly)'
);

log.warn(
    'display me on the browser console, but only if the log level is "warn" ' +
    'or higher (warn, info, verbose, or silly)'
);

log.error(
    'display this on the browser console as an error message, but only if the ' +
    'log level is "error" or higher (error, warn, info, verbose, or silly)'
);

log.wtf(
    'Also display this on the browser console, as an error message'
);

const result =
    log.silly(
        'Log return value of myFunction(). Pass result thru & assign it to var "result"',
         myFunction()
     );
// result now contains the return value of myFunction()

Details (on above)

  • 'my-fun-file.js' is a placeholder for the name of the current file
    • This appears in each log line, as part of the "tag"
  • logMarkers.maceWindu << replace with any item in the log marker styles list (see below)
  • All log instance functions return the last value they were passed.
  • TODO let users make their own log markers

Available log "marker" styles

  • none
  • angryBird
  • aquarium
  • arrow
  • backAndForth
  • barbells
  • bracelet
  • brainwave
  • cantTouch
  • cartoonSwearing
  • checkmate
  • cult
  • dirtRoad
  • escherBarbieLego
  • farmerBrown
  • fountain
  • fresh
  • grasslands
  • hatBlock
  • hotPursuit
  • joy
  • kingRageBlock
  • lakeLouise
  • lucky
  • maceWindu
  • mechanicalAtFists
  • moProblems
  • mrsPotatoVHS
  • neverEnough
  • nightmare
  • pipeDream
  • ohMy
  • potOfGold
  • probeArcade
  • rainbowLeaf
  • rockIsDead
  • seafoamSalad
  • smokeyHatesChristmas
  • springy
  • swimmers
  • tangerines
  • theBird
  • theHeist
  • vendetta
  • xmlHell
  • zebra

Log marker usage

  • When first "constructing" the log factory, define the log marker as the second argument (as seen above)
    • if not given, it uses the logMarkers.none style

NodeJS-specific logging

  • Deprecated - please don't use it
    • This will be removed in an upcoming version of mad-logs
  • shared/root logging is now isomorphic, so it's no longer needed