Errsole is not just a logging library but an enhanced logger with built-in visualization and error management features. It stands out by combining logging, error notifications, and a web-based dashboard for managing and analyzing logs efficiently.
Why Use Errsole.js
-
Single-Module Simplicity:
- Errsole.js combines logging, error alert, and visualization into one package, reducing the need for multiple tools.
-
Web Dashboard:
- A built-in web dashboard allows you to view, filter, and search logs without third-party tools.
- Features like team management and secure access make it ideal for collaborative debugging.
-
Flexible Storage:
- Offers support for SQLite, MySQL, PostgreSQL, and MongoDB for storing logs.
- You can customize log retention policies, ensuring suitability for both local development and production environments.
-
Critical Error Notifications:
- Alerts for critical errors, sent through channels like email or Slack, help in reducing response times.
-
High Performance:
- Benchmarks show it handles 70,000-90,000 more requests per minute compared to traditional setups like Elasticsearch and CloudWatch.
-
Custom Logging Features:
- Enhanced logging capabilities include custom levels (e.g.,
error
,info
,debug
) and metadata support for better context in logs.
- Enhanced logging capabilities include custom levels (e.g.,
-
Integration with Popular Tools:
- Works seamlessly with tools like Winston and offers an easy setup for integrating existing logging infrastructure.
-
Open Source and Free:
- Fully open-source with no licensing costs.
Errsole.js vs Other Libraries
Feature | Errsole.js | Winston | Pino |
---|---|---|---|
Built-in Dashboard | Yes | No (needs external tools) | No (needs external tools) |
Error Notifications | Yes | No | No |
Custom Logging | Advanced (metadata, levels) | Yes | Yes |
Storage Options | Multiple DBs, SQLite, MongoDB | Custom | Custom |
Performance | High | High | High |
Integration | Built-in (e.g., Winston) | Extensive (setup required) | Setup required |
Team Management | Yes | No | No |
When to Use Errsole.js
- Small Teams: Perfect for teams needing an all-in-one solution without setting up complex infrastructures.
- High-Performance Apps: Ideal for handling high traffic while maintaining logging efficiency.
- Collaborative Debugging: Offers team-specific access and metadata-rich logs for shared troubleshooting.
- Production Monitoring: Combines real-time error notifications with robust storage options.
How to Get Started with Errsole.js
Installation:
npm install errsole
Setup:
const errsole = require('errsole');
const ErrsoleSQLite = require('errsole-sqlite');
errsole.initialize({
storage: new ErrsoleSQLite('/path/to/logs.sqlite'),
});
console.log('Logging with Errsole.js!');
Access the Dashboard:
- Open your browser and visit
http://localhost:8001/
or your configured server URL.
Custom Logging:
errsole.log('info', 'Application started successfully');
errsole.meta({ userId: 1234 }).error('User action failed', { action: 'delete' });
In production environments, where centralized log storage is critical, Errsole offers multiple storage options to fit your needs:
Errsole with MongoDB
Errsole with MySQL
Errsole with PostgreSQL
Conclusion
Errsole.js is not just a logging library; it’s a comprehensive solution for error management and log visualization. It is particularly beneficial for modern Node.js applications where performance, collaboration, and reliability are key.
Top comments (3)
This module cannot log the following errors:
Using this module you can live with rose-colored glasses. Not knowing about real problems.
It captures all errors thrown by a Node.js app in real-time, including syntax errors and any other errors, but like any other logging libraries, it won't capture any errors that occur before the Node.js application starts running. This module is designed to be an improved version of Winston and Pino. Anything you can do with Winston or Pino, you can also achieve with Errsole except few things. If there are any errors it fails to capture, you can report the issue on its GitHub repository, and it will be resolved.
PS: if you are looking for complete Error Monitoring tool with proper request, then any logging libraries can't do this.
This will allow you to output logs to the terminal and write them to disk.
I have not attached the code with log rotation here, but for this type of recording - it is needed.