{"id":18931,"library":"winston-express-middleware","title":"winston-express-middleware","description":"Express.js middleware for request and error logging using winston. Version 0.1.0 (stable, but low release cadence). Supports whitelisting of request/response properties, custom log levels per status code, and multiple transports. A fork of express-winston with updated whitelisting and winston compatibility. Limited to Node >=0.6.0; no TypeScript definitions. Not actively maintained.","status":"maintenance","version":"0.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/hharnisc/winston-express-middleware","tags":["javascript","winston","flatiron","logging","express","log","error","handler","middleware"],"install":[{"cmd":"npm install winston-express-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add winston-express-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add winston-express-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core logging library; must be installed separately as peer dependency (v1.0.x required)","package":"winston","optional":false}],"imports":[{"note":"Default export via ESM. CommonJS require yields the module directly.","wrong":"const expressWinston = require('winston-express-middleware').default","symbol":"expressWinston","correct":"import expressWinston from 'winston-express-middleware'"},{"note":"Named export for the request logging middleware.","wrong":"const logger = require('winston-express-middleware').logger","symbol":"logger","correct":"import { logger } from 'winston-express-middleware'"},{"note":"Named export for the error logging middleware.","wrong":"const errorLogger = require('winston-express-middleware').errorLogger","symbol":"errorLogger","correct":"import { errorLogger } from 'winston-express-middleware'"}],"quickstart":{"code":"const winston = require('winston');\nconst expressWinston = require('winston-express-middleware');\nconst express = require('express');\nconst app = express();\n\n// Request logging\napp.use(expressWinston.logger({\n  transports: [new winston.transports.Console({ json: true, colorize: true })],\n  meta: true,\n  msg: 'HTTP {{req.method}} {{req.url}}',\n  expressFormat: true,\n  colorStatus: true\n}));\n\napp.get('/', (req, res) => res.send('Hello'));\n\n// Error logging (after routes)\napp.use(expressWinston.errorLogger({\n  transports: [new winston.transports.Console({ json: true, colorize: true })]\n}));\n\napp.use((err, req, res, next) => {\n  res.status(500).send('Error');\n});\n\napp.listen(3000);","lang":"javascript","description":"Shows basic setup with request and error logging middleware, using Console transport with JSON and colorization."},"warnings":[{"fix":"Order middleware as: app.use(router), app.use(errorLogger), then your error handler.","message":"Must be placed after router but before custom error handlers for error logging to work.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use a maintained fork like 'express-winston' (available on npm) or update manually.","message":"Winston v1 is deprecated; this middleware is not updated for winston v2+.","severity":"deprecated","affected_versions":">=0.1.0"},{"fix":"Use either 'transports' or 'winstonInstance', not both.","message":"The 'transports' option is ignored if 'winstonInstance' is provided.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Set 'expressFormat: false' to use custom 'msg' and 'colorStatus'.","message":"'expressFormat' overrides 'msg' and 'colorStatus' when true.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Provide a function like (req, res) => res.statusCode < 400 to skip non-errors.","message":"The 'skip' option expects a function that returns boolean; default is false (never skip).","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install winston-express-middleware' in your project directory.","cause":"Package not installed.","error":"Cannot find module 'winston-express-middleware'"},{"fix":"Use 'const expressWinston = require('winston-express-middleware')' and then 'expressWinston.logger(...)'.","cause":"Incorrect import style (e.g., destructuring non-existent export).","error":"TypeError: expressWinston.logger is not a function"},{"fix":"Ensure winston version 1.0.x is installed: 'npm install winston@1.0.x'.","cause":"Using winston v2+ API with older transport pattern.","error":"Error: winston.transports.Console is not a constructor"},{"fix":"Remove 'transports' if using 'winstonInstance', or vice versa.","cause":"Mixed API usage; both options provided.","error":"Warning: options.transports is deprecated, use winstonInstance"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}