UNPKG

logger-smartify

Version:

A configurable logger using Winston with optional file rotation and custom levels

116 lines (71 loc) 2.84 kB
## logger-smartify A highly customizable logger utility built on top of winston with: Console & file logging with rotation * Multiple argument support in logs * Contextual log labeling * Optional integrations with: ```bash npm install logger-smartify ``` ### Features * Custom log levels: error, warn, info, debug * Context prefix for each log * Colorized & formatted outputs * File logging with daily rotation * Pass multiple messages & objects in a single log call ### Configuration Options | Option | Type | Default | Description | | ------------ | --------- | ---------------------- | ------------------------------------------------------------------------ | | `level` | `string` | `'debug'` | Logging level: `'error'`, `'warn'`, `'info'`, `'debug'` | | `enableFile` | `boolean` | `false` | Enable rotating file logs | | `context` | `string` | - | Prefix logs with this context | | `format` | `string` | `'combined'` | Log format: `'simple'`, `'json'`, `'combined'` | | `silent` | `boolean` | `false` | Suppress all logs | | `env` | `string` | `process.env.NODE_ENV` | Force environment setting | ### Usage **Import & Initialize** ```bash const createLogger = require('logger-smartify'); const logger = createLogger({ level: 'debug', context: 'UserService', enableFile: true }); ``` **Example Logs** ```bash logger.info("User created", { userId: 123 }); logger.error("Failed to create user", { error: new Error("DB connection failed") }); logger.debug("Debug details", { query: "SELECT * FROM users" }); // Multiple arguments logger.info("Processing order", "for user", { userId: 1 }, { orderId: 456 }); ``` **File Logging** ```bash enableFile: true ``` Logs stored in ./logs/ * Daily rotated files: Max size: 20MB Retention: 14 days **Log Formats** simple: Plain text json: Structured JSON combined: Timestamp + level + colorized + meta data ```bash 2025-07-20T12:30:45.123Z [info]: [UserService] User created {"userId":123} ``` ### Example Configuration with All Options ```bash const logger = createLogger({ level: 'debug', context: 'ExampleService', enableFile: true, format: 'combined', }); ``` **Environment-Aware** Defaults to warn level when NODE_ENV=production Use env: 'development' to override ### License MIT