Skip to content

A light javascript logging package for Node.js and Bun applications. Features file logging and beautiful console output.

License

Notifications You must be signed in to change notification settings

belguinan/pretty-js-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pretty-js-log πŸ“

Node.js CI npm version npm downloads License: MIT Bundle Size Bundle Size (gzip)

A lightweight and colorful logging package for Node.js and Bun applications. Makes your console output beautiful and saves logs to files!

Features

  • Colorful console output
  • File logging support
  • Multiple log levels (info, warn, error, debug)
  • Support for both Node.js and Bun
  • JSON object / Array formatting
  • Custom IDs for tracking (like process ID)
  • Timezone-aware timestamps

Installation πŸš€

# Using npm npm install pretty-js-log
# Using bun bun install pretty-js-log

Quick Start 🎯

const { logFactory } = require('pretty-js-log'); // Create a basic logger const logger = logFactory({}); // Log some messages logger('Hello World'); logger.info('This is an info message'); logger.warn('Warning! Something needs attention'); logger.error('Oops! Something went wrong'); logger.debug('Debug information');

Output πŸŽ‘

Pretty JS Log Demo

Advanced Usage πŸ”§

Save Logs to File

const logger = logFactory({ path: './logs/app.log', // Logs will be saved here id: process.pid // Add process ID to logs }); logger('This will be saved to the file too!');

Logging Objects

const data = { user: 'john', age: 25 }; logger('User data:', data); // Objects are automatically formatted

Day-Based File Logging

Automatically prefix your log files with dates to organize them by day:

// Using default date format (YYYYMMDD) const logger = logFactory({ path: './logs/app.log', dayBasedFileLog: true }); // Creates: ./logs/20251020-app.log // With custom date format const logger2 = logFactory({ path: './logs/app.log', dayBasedFileLog: true, dateFormat: 'YYYY-MM-DD' }); // Creates: ./logs/2025-10-20-app.log // Hourly log files const logger3 = logFactory({ path: './logs/app.log', dayBasedFileLog: true, dateFormat: 'YYYYMMDD-HH' }); // Creates: ./logs/20251020-14-app.log (for 2 PM)

Disable Console Output

If you want to write logs only to file without console output, use the toStdout option:

const logger = logFactory({ path: './logs/app.log', toStdout: false // Logs will only be written to file }); logger('This will only appear in the log file'); logger.info('Silent logging to file');

Update Logger ID

You can dynamically update the logger ID after creation using the id method:

const logger = logFactory({ id: 'initial-id' }); logger('First log with initial ID'); logger.id('new-id'); logger('This log will show the new ID');

Output Examples 🎨

When you run your logs, they'll look something like this in the console:

[2024-03-15 10:30:45] - [id:1234] - Hello World [2024-03-15 10:30:46] - [id:1234] - This is an info message [2024-03-15 10:30:47] - [id:1234] - Warning! Something needs attention 

Contributing 🀝

Feel free to open issues and submit PRs! This is an open-source project and we welcome contributions.

License πŸ“„

MIT License - feel free to use this in your projects!

Todo πŸ“‹

  • File logging rotation based on file size or on dates.
  • Add support for external logging API's endpoints.

Author πŸ‘¨β€πŸ’»

Belguinan Noureddine

GitHub: https://github.com/belguinan

Packages

No packages published