Skip to content

Repository files navigation

What is VersaLog.js?

All Contributors

npm versionnpm downloadsnpm downloads

What is VersaLog.js? VersaLog is a powerful and flexible logging library for JavaScript. It supports everything from simple usage to advanced, highly customizable configurations to meet a wide range of needs.

Feature

Basic Logging

  • Supports standard log levels:
    • INFO, ERROR, WARNING, DEBUG, CRITICAL
  • Colored output for better readability
  • Symbol-based prefixes (e.g. [+], [-], [!])

Multiple Output Formats

Easily switch between different log styles:

  • simple[+] message
  • simple2[TIME] [+] message
  • detailed[TIME][LEVEL] : message
  • file[FILE:LINE][LEVEL] message

Tag System

  • Add custom tags to logs
  • Supports multiple tags (e.g. ["API", "AUTH"])
  • Optional default tags

File & Line Tracking

  • Display caller file name and line number
  • Useful for debugging large projects

Log File Saving

  • Automatically save logs to files
  • Output path: ./log/YYYY-MM-DD.log
  • Select which log levels to save

Auto Cleanup

  • Automatically deletes old log files (default: 7 days)
  • Keeps your log directory clean

Auto Cleanup

  • Disable console output
  • Useful for background services

Exception Handling

  • Automatically captures unhandled exceptions
  • Logs them as CRITICAL

Desktop Notifications

  • Optional desktop alerts for errors and critical logs
  • Uses plyer.notification

Asynchronous Logging

  • Non-blocking log processing using threads and queues
  • Improves performance in high-load environments

Support

Join our Discord server for support, questions, and community discussions:

Discord

Installation

npm install versalog

Enum

EnumDescription
detailedLogs including execution time and log levels
fileLogs with filename and line number
simpleSimple and easy-to-read logs
simple2Simple and easy-to-read log format. The timestamp is automatically included.

Options

OptionsDescription
show_fileTrue : Display filename and line number (for simple and detailed modes)
show_tagTrue : Show self.tag if no explicit tag is provided
tagDefault tag or tags (array allowed) when show_tag is enabled
enable_allShortcut to enable both show_file and show_tag
noticeTrue : When an error or critical level log is output, a desktop notification (using plyer.notification) will be displayed. The notification includes the log level and message.
all_saveTrue : When an error or critical level log is output, the log will be saved to a file.
save_levelsA list of log levels to save. Defaults to ["INFO", "ERROR", "WARNING", "DEBUG", "CRITICAL"].
silentTrue : Suppress standard output (print)
catch_exceptionsTrue : Automatically catch unhandled exceptions and log them as critical

Tag Usage Examples

importVersaLog=require('./VersaLog');// one tagconstlogger=newVersalog();logger.setConfig({show_file: false,show_tag: false,notice: false,tag: "a",mode: "detailed",});// two tagconstlogger=newVersalog();logger.setConfig({show_file: false,show_tag: false,notice: false,tag: ["a","a"],mode: "detailed",});

Log save

[2025-08-06 04:10:36][INFO] : ok

Contributors ✨

Thanks goes to these wonderful people (emoji key):

ₖₐₑ𝒹ₑ
ₖₐₑ𝒹ₑ

💻
yomi4486
yomi4486

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Releases

Packages

Contributors

Languages