JSPM

  • Created
  • Published
  • Downloads 142293
  • Score
    100M100P100Q162717F
  • License Apache-2.0

Show some ❤️ to process errors

Package Exports

  • log-process-errors

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 (log-process-errors) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Codecov Travis Node Gitter Twitter Medium

Show some ❤️ to Node.js process errors.

📰 Medium article.

Node.js prints process errors (uncaughtException, warning, unhandledRejection, rejectionHandled) on the console which is very useful. Unfortunately those errors:

log-process-errors fixes all those issues.

Without log-process-errors:

Screenshot before

With log-process-errors:

Screenshot after

Use cases

  • Proper logging of process errors in production.
  • Debugging of process errors in development.
  • Automated testing of process errors.

Demo

You can try this library:

Install

Production code (e.g. a server) can install this either as a production or development dependency:

npm install log-process-errors

However, libraries should install this as a development dependency:

npm install -D log-process-errors

This is because logging is modified globally and libraries users might not expect this side-effect. Also, this might lead to conflicts between libraries.

Usage

There are two ways to load this library. The first is to use the node -r CLI flag:

node -r log-process-errors/build/register ...

The second is:

const logProcessErrors = require('log-process-errors')
logProcessErrors(options)

logProcessErrors() should be called as early as possible in the code, before other require/import statements.

Options

options is an optional object with the following properties.

log

Type: function(error, level)

Customizes how process errors are logged.
Full documentation.

level

Type: object
Default: { warning: 'warn', multipleResolves: 'info', default: 'error' }

Which log level to use.
Full documentation.

exitOn

Type: string[]
Default: ["uncaughtException"]

Which process errors should trigger process.exit(1).
Full documentation.

testing

Type: string
Value: "ava", "mocha", "jasmine", "tape" or "node-tap"
Default: undefined

When running tests, makes them fail if there are any process errors.
Full documentation.

colors

Type: boolean
Default: true if the output is a terminal.

Colorizes messages.
Full documentation.

Support

If you found a bug or would like a new feature, don't hesitate to submit an issue on GitHub.

For other questions, feel free to chat with us on Gitter.

Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.

Contributing

This project was made with ❤️. The simplest way to give back is by starring and sharing it online.

If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!

Thanks go to our wonderful contributors:

ehmicky
ehmicky

💻 🎨 🤔 📖
Steven Vachon
Steven Vachon

💬
Hongarc
Hongarc

📖 💻