1.0.1 • Published 12 months ago

beautify-logs v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

✨ Beautify Logs

This library provides to your app a set of pretty and colorful log formats with different importance levels (debug, info, warn, error, and fatal). It even gives you the opportunity to use markdown in your logs.

📥 Installation

npm

npm install beautify-logs

yarn

yarn add beautify-logs

pnpm

pnpm add beautify-logs

🖐️ Getting Started

Import the main class

const { Logger } = require('beautify-logs');

Instantiate the imported class with your own options (check their description further below)

const logger = new Logger({ ... });

Start logging

logger.debug('Lorem Ipsum dolor sit amet.');

logger.info('Lorem Ipsum dolor sit amet.');

logger.warn('Lorem Ipsum dolor sit amet.');

logger.error('Lorem Ipsum dolor sit amet.');

logger.fatal('Lorem Ipsum dolor sit amet.');

Bonus: how to use the Logger class instance in any of your app file

To do so, simply assign the logger property to the process in your index file.

Object.assign(process, {
   logger: logger
});

process.logger.debug('The logger is now usable from anywhere!');

⚙️ Logger options

You can personalize your logger by providing your own options.

1. The format

You can choose one of the many available formats (check further below). Default value is: 0

const logger = new Logger({
   format: 3
});

logger.debug('This is the third format!');
Result :

Third Format Preview

2. The message splitting

You can provide as many messages as you want at once in a single log. This option allows you to wether split those or not. Default value is: false

const logger = new Logger({
   splitMessages: true
});

logger.debug('Hello, World!', 'How is your day going?');
Result :

Message Splitting Preview

const logger = new Logger({
   splitMessages: false
});

logger.debug('Hello, World!', 'How is your day going?');
Result :

Message Splitting Preview

3. The message formatting

You can choose to wether format the messages with some Markdown (bold, italic, underline, and URL coloring) or not. Default value is: true

const logger = new Logger({
   formatMessages: true
});

logger.debug('Here is some **bold**, *italic*, __underline__, and https://example.com/');
Result :

Message Formatting Preview

const logger = new Logger({
   formatMessages: false
});

logger.debug('Here is some **bold**, *italic*, __underline__, and https://example.com/');
Result :

Message Splitting Preview

🦋 Log Formats Preview

Format No. 0

Format No. 0 Preview

Format No. 1

Format No. 1 Preview

Format No. 2

Format No. 2 Preview

Format No. 3

Format No. 3 Preview

Format No. 4

Format No. 4 Preview

Format No. 5

Format No. 5 Preview

Format No. 6

Format No. 6 Preview

Format No. 7

Format No. 7 Preview

  • Note: The colors may slightly vary according to your terminal colors.
  • More formats will come soon!

🔎 Object Inspecting

If an object is given as a message instead of a string, the library will display its whole content using util.inspect(...) method.

Example

const user = {
   fullName: 'John Doe',
   birthDate: new Date(1989, 8, 22),
   hobbies: [
      'programming',
      'sport'
   ],
   familyMembers: {
      parents: {
         mother: 'Coralie Clark',
         father: 'William Doe'
      }
   }
};

logger.info('A user was created:', user);
Result :

Object Inspecting Example