UNPKG

simplest-fancy-logger

Version:

A lightweight and easy-to-use logging library for Node.js applications

87 lines (58 loc) 3.47 kB
# Simple Logger Simple Logger is a lightweight and easy-to-use logging library for Node.js applications. It provides a simple and intuitive way to log messages with different severity levels, format log messages, and rotate log files. ## Installation To install Simple Logger, use npm: ``` npm install simplest-fancy-logger ``` ## Usage First, require the `SimpleLogger` class in your Node.js application: ```javascript import SimpleLogger from "simplest-fancy-logger" ``` Then, create an instance of the `SimpleLogger` class with the desired configuration options: ```javascript const logger = new SimpleLogger({ logLevel: "debug", logFile: "app.log", logFormat: "[{level}] [{timestamp}] - {message} - {emoji}", dateFormat: "yyyy-mm-dd HH:MM:ss", maxFileSize: 1024 * 1024 * 5, // 5MB maxFiles: 3, }) ``` Now you can use the logger instance to log messages with different severity levels: ```javascript logger.info("This is an informational message") logger.warn("This is a warning message") logger.error("This is an error message") logger.debug("This is a debug message") ``` The log messages will be outputted to the console and written to the specified log file. ## Output Examples Here are some examples of how the log messages will be outputted using Simple Logger: ![alt text](image.png) The log messages include the following components: - Log Level: The severity level of the message, displayed in uppercase and colored based on the level. - Timestamp: The timestamp of when the log message was generated, formatted according to the `dateFormat` configuration option. - Message: The actual log message. - Emoji: An emoji corresponding to the log level, providing a visual indication of the message severity. The log messages will be outputted to the console and written to the specified log file (if configured) in the same format. ## Configuration Options The `SimpleLogger` class accepts the following configuration options: - `logLevel` (string, default: `'info'`): The minimum severity level of messages to log. Can be one of `'error'`, `'warn'`, `'info'`, or `'debug'`. - `logFile` (string, default: `null`): The path to the log file. If not specified, logs will only be outputted to the console. - `logFormat` (string, default: `'[{level}] [{timestamp}] - {message} - {emoji}'`): The format of the log messages. You can use placeholders `{level}`, `{timestamp}`, `{message}`, and `{emoji}` to customize the format. - `dateFormat` (string, default: `'yyyy-mm-dd HH:MM:ss'`): The format of the timestamp in log messages. - `maxFileSize` (number, default: `1024 * 1024 * 10`): The maximum size (in bytes) of the log file before it gets rotated. - `maxFiles` (number, default: `5`): The maximum number of rotated log files to keep. ## Log Levels Simple Logger supports the following log levels, in decreasing order of severity: - `error`: Error messages. - `warn`: Warning messages. - `info`: Informational messages. - `debug`: Debug messages. ## Log File Rotation Simple Logger automatically rotates the log file when it reaches the specified maximum size. The rotated log files are named with a numbered suffix (e.g., `app.log.1`, `app.log.2`, etc.). The number of rotated log files is limited by the `maxFiles` configuration option. ## License Simple Logger is released under the [MIT License](https://opensource.org/licenses/MIT).