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
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:
- do not show stack traces for
warning
andrejectionHandled
making them hard to debug. - do not include
multipleResolves
errors (when a promise is resolved/rejected twice). - are inconvenient to log to an external service.
- cannot be conditionally skipped.
- are printed each time an error is repeated (except for
warning
). - are not human-friendly.
log-process-errors
fixes all those issues.
Without log-process-errors
:
With log-process-errors
:
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:
- either directly in your browser.
- or by executing the
examples
files in a terminal.
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/register ...
The second is:
const logProcessErrors = require('log-process-errors')
logProcessErrors(options)
logProcessErrors()
should be called as early as possible in the code.
Options
log
Type: function(message, level, event)
Customizes how events are logged.
Full documentation.
level
Type: object
Default: { warning: 'warn', multipleResolves: 'info', default: 'error' }
Which log level to use.
Full documentation.
message
Type: function(level, event, options) => string
Customizes messages.
Full documentation.
colors
Type: boolean
Default: true
if the output is a terminal.
Colorizes messages.
Full documentation.
exitOn
Type: string[]
Default: ["uncaughtException"]
Which events should trigger process.exit(1)
.
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!
ehmicky 💻 🎨 🤔 📖 |