DEV Community

Rishi Kumar
Rishi Kumar

Posted on • Edited on

The Logging Tool You Need for Logs, Errors, and Collaboration in Node.js

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

  1. Single-Module Simplicity:

    • Errsole.js combines logging, error alert, and visualization into one package, reducing the need for multiple tools.
  2. 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.
  3. 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.
  4. Critical Error Notifications:

    • Alerts for critical errors, sent through channels like email or Slack, help in reducing response times.
  5. High Performance:

    • Benchmarks show it handles 70,000-90,000 more requests per minute compared to traditional setups like Elasticsearch and CloudWatch.
  6. Custom Logging Features:

    • Enhanced logging capabilities include custom levels (e.g., error, info, debug) and metadata support for better context in logs.
  7. Integration with Popular Tools:

    • Works seamlessly with tools like Winston and offers an easy setup for integrating existing logging infrastructure.
  8. 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
Enter fullscreen mode Exit fullscreen mode

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!');
Enter fullscreen mode Exit fullscreen mode

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' });
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
ergonomic_code profile image
Ergonomic Code

This module cannot log the following errors:

  • syntax errors,
  • memory overflow,
  • unexpected errors of imported modules.

Using this module you can live with rose-colored glasses. Not knowing about real problems.

Collapse
 
mrrishimeena profile image
Rishi Kumar

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.

Collapse
 
ergonomic_code profile image
Ergonomic Code

This will allow you to output logs to the terminal and write them to disk.

sudo apt install -y moreutils #ts
NO_COLOR=1 node index 2> >(ts -m '%Y-%m-%d %H:%M:%S:' | tee -ai logs/stderr.log) > >(ts -m '%Y-%m-%d %H:%M:%S:' | tee -ai logs/stdout.log)
Enter fullscreen mode Exit fullscreen mode

I have not attached the code with log rotation here, but for this type of recording - it is needed.