UNPKG

logwizard

Version:

A lightweight Node.js logging utility with file logging, daily log rotation, console output, and customizable separators.

134 lines (92 loc) 4.44 kB
# Logger A simple logging utility for Node.js that logs messages to a specified file and optionally to the console. The logger supports different log levels, including debug, info, warn, and error. ## Features - Log messages to a file with a timestamp. - Support for multiple log levels: debug, info, warn, and error. - Optionally log messages to the console. - Customizable log message separator. - Automatically create the log directory if it does not exist. ## Installation To use the Logger class, you can need to install it via npm. ```bash npm install logwizard ``` ## Usage Heres an example of how to use the Logger.: ```js const Logger = require('logwizard'); // Logs will be stored in "logs/access/YYYY-MM-DD.log" const logger = new Logger('logs/access', '|', true, true); // Log to 'logs/app.log', use '|' as separator, log to console logger.debug('This is a debug message'); logger.info('This is an info message'); logger.warn('This is a warning message'); logger.error('This is an error message'); ``` ### Constructor Parameters The `Logger` class constructor accepts the following parameters: - **`filePath`** (String): - Description: The path to the log file where messages will be recorded. - Example: `'logs/app.log'`. - **`separator`** (String, optional): - Description: The character used to separate log message components. Defaults to `|`. - Example: `'/'`. - **`logToConsole`** (Boolean, optional): - Description: If `true`, log messages will also be printed to the console. Defaults to `false`. - Example: `true`. - **`logRotation `** (Boolean, optional): - Description: If `true`, logs are rotated daily into files named YYYY-MM-DD.log. If `false` it will create file name as `filePath` parameter. Defaults to `false`. - Example: `true`. ### Method Parameters #### `debug(message)` - **`message`** (String | Array): - Description: The message or array of messages to log as a debug entry. #### `info(message)` - **`message`** (String | Array): - Description: The message or array of messages to log as an info entry. #### `warn(message)` - **`message`** (String | Array): - Description: The message or array of messages to log as a warning entry. #### `error(message)` - **`message`** (String | Array): - Description: The message or array of messages to log as an error entry. ### Methods #### `debug(message)` - **Description**: Logs a debug message to the file (and optionally to the console). - **Parameters**: - **`message`** (String | Array): The message or array of messages to log as a debug entry. - **Example**: ```javascript logger.debug('This is a debug message'); #### `info(message)` - **Description**: Logs an informational message to the file (and optionally to the console). - **Parameters**: - **`message`** (String | Array): The message or array of messages to log as a debug entry. - **Example**: ```javascript logger.info('This is a info message'); #### `warn(message)` - **Description**: Logs a warning message to the file (and optionally to the console). - **Parameters**: - **`message`** (String | Array): The message or array of messages to log as a warning entry. - **Example**: ```javascript logger.warn('This is a warn message'); #### `error(message)` - **Description**: Logs a error message to the file (and optionally to the console). - **Parameters**: - **`message`** (String | Array): The message or array of messages to log as a error entry. - **Example**: ```javascript logger.error('This is a warn message'); ### Notes This section can clarify important behaviors and usage notes for the logger. ```markdown - The logger will create the specified log directory if it does not already exist, but make sure user executing program has permission to create directory. - Log messages can be passed as a string or an array of strings. If an array is provided, the logger will join the elements using the specified separator. - The log file will be created if it doesn't exist, and new entries will be appended to the file. - The log messages include a timestamp in ISO format, making it easy to track when each log entry was created. ``` ### License ``` This format makes it clear what parameters the user can expect and how to use them effectively! ```