log-rank
Version:
A priority-based console logger for Node.js and browser environments. Log messages with custom priorities and control the order they appear β ideal for debugging complex flows, batching logs, or building clean dev tools.
145 lines (95 loc) β’ 3 kB
Markdown
# log-rank
**A customizable console log utility with priority handling, message grouping, and emoji support.**
## π¦ Installation
```bash
npm install log-rank
```
or
```bash
yarn add log-rank
```
## π‘ Why this package?
While working on a large codebase filled with scattered `console.log()` statements, filtering relevant logs became difficult. I built **log-rank** to give structure, priority, and clarity to console outputsβespecially during debugging and feature development.
## π Features
- Set priority for your console messages
- Supports `log`, `warn`, `error`, `success`, and `failure` message types
- Automatically clears console before reprinting grouped messages
- Emoji support for success and failure logs
- Toggle timestamps
- Control max number of messages
- Disable console globally if needed
## π Usage
### 1. Basic Setup
```ts
import { Console } from "log-rank";
const logger = new Console({
maximumConsoleAllowed: 100,
isConsoleDisable: false,
timeFormat: "ISO", // or "LOCALE"
reversePriority: false,
showTimestamps: true,
});
```
### 2. Log Types
#### Log
```ts
logger.log("This is a log message", { priority: 1, showTimestamps: false });
```
#### Warn
```ts
logger.warn("This is a warning", { priority: 2 });
```
#### Error
```ts
logger.error("This is an error", { priority: 3 });
```
#### Success
```ts
logger.success("Data saved successfully", "π", { priority: 1 });
```
#### Failure
```ts
logger.failure("Operation failed", "π₯", { priority: 1 });
```
### 3. Flush the Console Queue
```ts
logger.flush();
```
## βοΈ Configuration Options
### `Console` constructor options
| Option | Type | Required | Default | Description |
| ----------------------- | --------------------- | -------- | ------- | ----------------------------------------- |
| `maximumConsoleAllowed` | number | β
| β | Max messages allowed before stopping logs |
| `isConsoleDisable` | boolean | β | false | Globally disable logging |
| `timeFormat` | `"ISO"` \| `"LOCALE"` | β
| β | Format of timestamps |
| `reversePriority` | boolean | β | false | Show low priority messages first |
### Logging Options
Each log method (`log`, `warn`, `error`, `success`, `failure`) accepts:
```ts
{
priority?: number; // Optional priority level (default: 1)
showTimestamps?: boolean; // Whether to show timestamp (default: false)
}
```
## π¦ Example Output
```bash
β
2025-04-14T12:00:00.000Z:
Data saved successfully
β 2025-04-14T12:01:00.000Z:
Operation failed
2025-04-14T12:02:00.000Z:
This is a log message
```
## π Contribution
Pull requests and feature suggestions are welcome!
## π License
MIT License
Built with β€οΈ to clean up your console mess!