Socket
Book a DemoInstallSign in
Socket

debug-trace

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

debug-trace

Adds a handy `trace` flag to the console object to prepend the file and line number

2.1.0
Source
npmnpm
Version published
Weekly downloads
467
11.72%
Maintainers
1
Weekly downloads
 
Created
Source

debug-trace

This fork of console-trace adds the following features:

  • work with callsite >= version 1.0.0
  • work with https://github.com/visionmedia/debug (and print the caller of debug instead of console)
  • provide an easy to override formatting function console.format e.g.:
  // overridable console string prefix formatting function
  console.format = function (c) {
    return c.getDate() + ": [" + c.filename + ":" + c.getLineNumber() + "] " + c.functionName;
  };

Available methods from V8 JavaScript stack trace API

  • getThis: returns the value of this
  • getTypeName: returns the type of this as a string. This is the name of the function stored in the constructor field of this, if available, otherwise the object's [[Class]] internal property.
  • getFunction: returns the current function
  • getFunctionName: returns the name of the current function, typically its name property. If a name property is not available an attempt will be made to try to infer a name from the function's context.
  • getMethodName: returns the name of the property of this or one of its prototypes that holds the current function
  • getFileName: if this function was defined in a script returns the name of the script
  • getLineNumber: if this function was defined in a script returns the current line number
  • getColumnNumber: if this function was defined in a script returns the current column number
  • getEvalOrigin: if this function was created using a call to eval returns a CallSite object representing the location where eval was called
  • isToplevel: is this a toplevel invocation, that is, is this the global object?
  • isEval: does this call take place in code defined by a call to eval?
  • isNative: is this call in native V8 code?
  • isConstructor: is this a constructor call?

Additional method

  • getDate(): actual date formatted like this: "2016-10-04 07:18:46.719"

Additional properties

  • filename: getFileName without the base path: console.traceOptions.cwd
  • method: console method name like log, error ect.
  • functionName: call.getFunctionName() || 'anonymous'

Extends the native Node.JS console object to prefix logging functions with the CallSite information.

To read more about runtime stack trace introspection you can refer to this article.

Installation

$ npm install debug-trace

Syntax:

require('debug-trace')([options])

Available Options:

  • always - (Boolean: defaults to false) always print the callsite info even without accessing methods from the t or traced getters.
  • cwd - (String: defaults to process.cwd()) the path that will be stripped from the callsite info
  • colors - (Boolean|Object: defaults to undefined) terminal colors support flag or a custom color object
  • right - (Boolean: defaults to false) callsite alignment flag, when true prints infos on the right
  • overwriteDebugLog - (Function: defaults to console.log) overwrites debug module log function, can be turned off with overwriteDebugLog: false

Examples:

require('debug-trace')

You can add the t or traced getter to your calls to obtain a stacktrace:

console.t.log('a');
console.traced.log('a');

You can also make every console call trace:

require('debug-trace')({
  always: true,
})

...

console.log('a');     // tracing
console.error('a');   // tracing

You can align the callsite infos to the right

require('debug-trace')({
  always: true,
  right: true
})

...

console.log('a');     // tracing right
console.error('a');   // tracing right

You can change defaults colors too

require('./debug-trace')({
  always: true,
  colors: {
    warn: '35',
    info: '32'
  }
})

...

console.warn('a');    // magenta
console.info('a');    // green

To customize the string that's prefixed to the calls, override the console.traceFormat function.

Beyond console

If you have more sophisticated logging needs, or don't wish to extend console, I suggest you look at tracer.

Credits

I only added some functionality to the original console-trace:

License

MIT License

Keywords

debug

FAQs

Package last updated on 17 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.