Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including stacklogger with all npm packages installed. Try it out:

var stacklogger = require("stacklogger")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

stacklogger v1.2.0

Colored JavaScript logging library that prepends the current class and function name to the message for ease of debugging.

stacklogger

Overview

Colored JavaScript logging library that prepends the caller's className.functionName to the message. This helps tremendously when having many console.logs during your debugging phase, as you can see which class and function this message originated from. It works best in the chrome dev tools:

stacklogger console output chrome

Firefox also works, but with their JS engine there is no way (I know of) to reliably get the class name, so the filename is used instead (which should be fine because you keep your code modularized anyway :wink:).

stacklogger console output firefox

Usage

The output above is produced by the following code.

Calling log directly

The library exports a log function that works exactly like console.log

import log from 'stacklogger'

class ExampleLog {
  constructor () {
    this.obj = {hello: 'world', anotherKey: [0, 1]}
    this.arr = [1, 3, 5, 7, 9]
  }
  hello () {
    log('Logging some text with log()', this.obj, this.arr)
  }
}

let e1 = new ExampleLog()
e1.hello()

Hooking console.log

If you already wrote your application using console.log, you can simply call hookConsoleLog() once at the start of your application, and all console.log calls will be redirected to the stacklogger's log function.

import { hookConsoleLog } from 'stacklogger'
class ExampleConsoleLog {
  hello () {
    console.log('Called with console.log')
  }
}
console.log('standard console.log without the hook')
hookConsoleLog()
console.log('console.log hooked now')
let e2 = new ExampleConsoleLog()
e2.hello()

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free