Giter Site home page Giter Site logo

lodge's Introduction

lodge

npm Bundle size Install size Donate

const log = require('lodge');

// simplest case
log('hello world');

// multiple arguments
log('hello', 'world');

// non-strings are pretty-printed
log('object:', { hello: 'world' });

// first argument can be a format string
log('string: %s, object: %O', 100, { hello: 'world' });

// join the given arguments into a formatted string
log.stylize('string: %s, object: %O', 100, { hello: 'world' });

// ansi colors included
log(log.red('CODE RED'));

// warnings
log.warn('be careful');

// print to stderr
log.error('oh crap');

// print a strack trace
log.trace();

// clear the console/terminal
log.clear();

// namespaces
const log2 = log.debug('foo');

// must set DEBUG=1 or DEBUG=foo to see this
log2('something useful in debugging');

// DEBUG=1 is not required to see warnings/errors
log2.warn('foo is deprecated');

// prefixes
log2.prefix('[foo]');
log2.prefix(() => `[${new Date().toISOString()}]`);

The built-in console functions are used when the global window variable exists. Otherwise, functions with similar behavior are used with the process.stdout or process.stderr streams.

You may override log.cleanStack to customize the output of the trace method.

Environment variables

Use QUIET=1 to disable all messages. The --quiet CLI flag also works.

The DEBUG environment variable is flexible. DEBUG=1 enables all debug logs. The asterisk (*) allows for globbing. For example, a* matches both abc and acb but not cba. The comma (,) lets you specify multiple globs. The --debug CLI flag is identical to DEBUG=1.

Use NO_COLOR=1 to disable ANSI colors. The --no-color CLI flag also works.

Use NO_WARNINGS=1 to disable warning messages. The --no-warnings CLI flag also works.

Use TRACE_WARNINGS=1 to attach a stack trace to each warning.

For browser environments, you can set these properties on the window object before importing this library.

Colors

The following ANSI colors are available: (256 color spectrum)

  • red
  • blue
  • green
  • yellow
  • cyan
  • pink
  • white
  • silver
  • gray
  • coal
  • black

The non-grayscale colors all have light variants available as lred, lblue, lgreen, etc.

Prefixes

You can set the prefix method of the main logger (or a namespace) if you want to prepend a string to every message.

const foo = log.debug('foo');
foo.prefix = () => `[${new Date().toISOString()}] foo:`

foo('test') // => '[2018-06-28T20:03:48.892Z] foo: test'

Loggers created by the create or debug method will inherit the prefix of their ancestors.

Loggers created with the debug method have a default prefix of their identifier with a dark gray color.

lodge's People

Contributors

aleclarson avatar renovate-bot avatar

Stargazers

 avatar

Watchers

 avatar  avatar

lodge's Issues

Prefixes

Add a function that creates a new logging instance that always has a prefix included at the beginning of every message.

let log2 = log.prefix(log.green('foo:'));

// for debug logs, too
log2 = log.debug('foo').prefix(log.green('foo:'));

inherit parent prefixes

log.prefix('foo')
let log2 = log.create().prefix('bar')
let log3 = log2.debug('xxx').prefix('xxx')

log3('test') // => 'foo bar xxx test'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.