| id | 00a946f0-d1d2-4d6a-a069-5910fcc30478 |
| name | Generic Winston Logger Service |
| 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
- Dependencies: Use
winston and winston-daily-rotate-file.
- Transports: Configure both Console and DailyRotateFile transports.
- 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.
- Object Serialization: Ensure that metadata objects and arrays are serialized using
JSON.stringify(metadata, null, 2) to prevent [object Object] output.
- Environment Awareness:
- Check
process.env.NODE_ENV === 'development'.
- Apply
winston.format.colorize() to the console transport only in development.
- Log Rotation:
- Rotate logs daily (
datePattern: "YYYY-MM-DD").
- Enable
zippedArchive: true.
- Set
maxSize: "20m" and maxFiles: "14d".
- Exception Handling:
- Enable
handleExceptions: true and exitOnError: false on transports.
- Listen for
unhandledRejection events and log them using the logger.
- 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