PannH / beautify-logs

Elegant logs for your elegant apps with many available formats and Markdown formatting.

Home Page:https://www.npmjs.com/package/beautify-logs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

โœจ 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

About

Elegant logs for your elegant apps with many available formats and Markdown formatting.

https://www.npmjs.com/package/beautify-logs

License:MIT License


Languages

Language:TypeScript 100.0%