npm.io
1.0.7 • Published 1 year ago

npm-logger-winston

Licence
ISC
Version
1.0.7
Deps
2
Size
7 kB
Vulns
0
Weekly
0

winston-logger

winston-logger is a powerful logging solution built on Winston, featuring winston-daily-rotate-file for automatic log rotation. Designed for microservices, it provides log level control, daily log rotation, and timestamped logs, ensuring efficient and scalable log management.

Features

  • Log Level Control: Supports multiple log levels (error, warn, info, debug, etc.)
  • Daily Log Rotation: Keeps logs organized and prevents excessive file growth.
  • Structured Logging: Supports JSON-based structured logs for better debugging.
  • Execution Time Measurement: Tracks execution times with time_trace.

Installation

To install winston-logger from GitHub, run:

npm install npm-logger-winston

Usage

Import and Initialize the Logger
const getLogger = require('npm-logger-winston');
const logger = getLogger(callingModule, dirPath, env); // 'logs' is the directory where log files will be stored
Log Messages with Different Levels
logger.info('Application started successfully');
logger.warn('Low disk space warning');
logger.error('Database connection failed');
logger.debug('Debugging information');
Structured Logging Example
logger.info({ message: 'User logged in', userId: 123 });
logger.error({ message: 'Payment failed', orderId: 456, reason: 'Insufficient funds' });
Measure Execution Time (time_trace)
const timer = logger.startTimer();
setTimeout(() => {
  timer.done({ message: 'Database query executed', level: 'time_trace' });
}, 2000);

trace_time Function

The trace_time function helps measure execution time for a given function.

Usage:
const logger = require('npm-logger-winston');
logger.trace_time("Processing data", () => {
  for (let i = 0; i < 1e6; i++); // Simulated heavy computation
});

---

## 🔧 Configuration

| Log Level  | Description                                        |
|------------|----------------------------------------------------|
| `error`    | Critical errors that need immediate attention     |
| `warn`     | Warnings about potential issues                   |
| `info`     | General information messages                      |
| `http`     | HTTP request logs                                 |
| `verbose`  | More detailed information logs                    |
| `debug`    | Debugging messages                                |
| `time_trace` | Logs execution time of operations               |

### 🌍 ENV Configuration

| Environment  | Log Level Scope                                  |
|-------------|--------------------------------------------------|
| `error`  | Logs up to `error` level                        |
| `warn`       | Logs up to `warn` level                         |
| `info`        | Logs up to `info` level                         |
| `time_trace`| Logs up to `time_trace` level                        |
| `silly`    | Logs up to `silly` level                         |

---

## 📜 License

This project is licensed under the MIT License.

---

Happy Logging! 🚀