log-process-errors

by ehmicky

Show some ❀️ to Node.js process errors

418 Stars 4 Forks Last release: 5 months ago (5.1.2) Apache License 2.0 1.8K Commits 84 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Codecov Build Node Gitter Twitter Medium

πŸ“° Medium article.

Show some ❀️ to Node.js process errors.

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, originalError)

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

πŸ’» 🎨 πŸ€” πŸ“–

Steven Vachon

πŸ’¬

Hongarc

πŸ“– πŸ’»

Andy Brenneke

πŸ›

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.