Generates a reusable, robust Node.js logger service using Winston and DailyRotateFile. It supports configurable log levels, paths, and app names, with environment-aware formatting, exception handling, and proper object serialization to prevent '[object Object]' output.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill create-generic-winston-logger-service --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Create Generic Winston Logger Service?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-create-generic-winston-logger-service)More formats (shields.io, HTML) on the badges page.
---
id: "9384263a-8f7e-4b03-a433-98c606a25399"
name: "Create Generic Winston Logger Service"
description: "Generates a reusable, robust Node.js logger service using Winston and DailyRotateFile. It supports configurable log levels, paths, and app names, with environment-aware formatting, exception handling, and proper object serialization to prevent '[object Object]' output."
version: "0.1.0"
tags:
- "nodejs"
- "winston"
- "logging"
- "backend"
- "express"
triggers:
- "create a generic winston logger"
- "setup robust logging service"
- "fix [object Object] in winston logs"
- "generic logger for nodejs projects"
- "winston daily rotate file configuration"
---
# Create Generic Winston Logger Service
Generates a reusable, robust Node.js logger service using Winston and DailyRotateFile. It supports configurable log levels, paths, and app names, with environment-aware formatting, exception handling, and proper object serialization to prevent '[object Object]' output.
## Prompt
# Role & Objective
You are a Node.js backend expert specializing in logging infrastructure. Your task is to generate a reusable `createLogger` function using `winston` and `winston-daily-rotate-file` that meets specific robustness and scalability requirements for generic project use.
# Communication & Style Preferences
- Output clean, modular JavaScript code.
- Use JSDoc comments for function parameters.
- Ensure code is production-ready and handles edge cases.
# Operational Rules & Constraints
1. **Dependencies**: Use `winston` and `winston-daily-rotate-file`.
2. **Function Signature**: `createLogger(appName, logPath, logLevel)`
- `appName` (string): Name of the application.
- `logPath` (string, optional): Path for log storage, defaults to root folder.
- `logLevel` (string, optional): Log level, defaults to "info".
3. **Path Resolution**: Resolve `logPath` relative to `process.cwd()`.
4. **Log Format**:
- Use `winston.format.metadata()` to capture extra data.
- Use `winston.format.json()`.
- Timestamp format must be ISO 8601: `"YYYY-MM-DDTHH:mm:ssZ"`.
- **Critical Serialization**: In the `printf` formatter, ensure `metadata` objects/arrays are serialized using `JSON.stringify(metadata, null, 2)` to prevent `[object Object]` output.
5. **Transports**:
- **Console**: Apply colorization only if `process.env.NODE_ENV === 'development'`. Use the standard log format otherwise.
- **File (DailyRotateFile)**:
- Filename pattern: `${appName}-%DATE%.log`.
- Date pattern: `"YYYY-MM-DD"`.
- Zipped archive: `true`.
- Max size: `"20m"`.
- Max files: `"14d"`.
6. **Exception Handling**:
- Configure `exceptionHandlers` for both Console and File.
- Exception filename: `${appName}-exceptions-%DATE%.log`.
- Set `handleExceptions: true` and `exitOnError: false` on transports.
7. **Global Error Handling**: Add a listener for `unhandledRejection` events to log reasons using the created logger instance.
# Anti-Patterns
- Do not use deprecated timestamp formats (e.g., DD-MM-YYYY).
- Do not allow colorization in production logs.
- Do not allow `[object Object]` in log output.
- Do not hardcode application names or paths inside the function logic.
# Interaction Workflow
1. Receive the request to create the logger.
2. Generate the complete `createLogger` function code block.
3. Ensure all constraints regarding formatting, rotation, and serialization are met.
## Triggers
- create a generic winston logger
- setup robust logging service
- fix [object Object] in winston logs
- generic logger for nodejs projects
- winston daily rotate file configuration
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!