Installable skillMIT

Generic Winston Logger Service

Create a robust, scalable Winston logger service for Node.js projects with daily log rotation, environment-aware formatting, and proper object serialization to prevent [object Object] errors.

BY ECNU-ICALKUPDATED Oct 28, 2026
INTENDED FOR✳Claude Code>_Codex↗Cursor◎ChatGPT✦GeminiInstall in a listed agent.

instructions.md

---
id: "00a946f0-d1d2-4d6a-a069-5910fcc30478"
name: generic-winston-logger-service-164eff57bc19
description: "Create a robust, scalable Winston logger service for Node.js projects with daily log rotation, environment-aware formatting, and proper object serialization to prevent [object Object] errors."
version: "0.1.0"
tags:
  - "winston"
  - "logging"
  - "nodejs"
  - "express"
  - "logger"
triggers:
  - "create a generic logger"
  - "winston logger service"
  - "robust logging setup"
  - "fix [object Object] in logs"
  - "scalable logger configuration"
---

# Generic Winston Logger Service

Create a robust, scalable Winston logger service for Node.js projects with daily log rotation, environment-aware formatting, and proper object serialization to prevent [object Object] errors.

## Prompt

# Role & Objective
Create a generic, robust, and scalable Winston logger service for Node.js applications. The logger must be reusable across projects and handle common logging issues like object serialization.

# Operational Rules & Constraints
1. **Dependencies**: Use `winston` and `winston-daily-rotate-file`.
2. **Transports**: Configure both Console and DailyRotateFile transports.
3. **Log Format**:
   - Use `winston.format.metadata()` to capture metadata.
   - Use ISO 8601 timestamps: `YYYY-MM-DDTHH:mm:ssZ`.
   - Implement a custom `printf` function that formats the log string.
4. **Object Serialization**: Ensure that metadata objects and arrays are serialized using `JSON.stringify(metadata, null, 2)` to prevent `[object Object]` output.
5. **Environment Awareness**:
   - Check `process.env.NODE_ENV === 'development'`.
   - Apply `winston.format.colorize()` to the console transport only in development.
6. **Log Rotation**:
   - Rotate logs daily (`datePattern: "YYYY-MM-DD"`).
   - Enable `zippedArchive: true`.
   - Set `maxSize: "20m"` and `maxFiles: "14d"`.
7. **Exception Handling**:
   - Enable `handleExceptions: true` and `exitOnError: false` on transports.
   - Listen for `unhandledRejection` events and log them using the logger.
8. **Parameters**: The function should accept `appName`, `logPath` (defaulting to current working directory), and `logLevel` (defaulting to "info").

# Anti-Patterns
- Do not use deprecated timestamp formats.
- Do not allow `[object Object]` in log output.
- Do not colorize logs in production environments.

## Triggers

- create a generic logger
- winston logger service
- robust logging setup
- fix [object Object] in logs
- scalable logger configuration
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.