Newer
Older
express-blog / src / middleware / logging.js
@Jason Jason on 15 May 768 bytes new file: package-lock.json
// src/middleware/logging.js
const morgan = require("morgan");
const logger = require("../utils/logging");

const logFormat =
  ":method :url :status :response-time ms - :res[content-length]";

function createMorgan(stream, skip) {
  return morgan(logFormat, { stream, skip });
}

const morganInfo = createMorgan(
  logger.streams.info,
  (req, res) => res.statusCode >= 400
);

const morganWarn = createMorgan(
  logger.streams.warn,
  (req, res) => res.statusCode < 400 || res.statusCode >= 500
);

const morganError = createMorgan(
  logger.streams.error,
  (req, res) => res.statusCode < 500
);

const loggingMiddleware = (req, res, next) => {
  req.log = logger;
  next();
};

module.exports = {
  loggingMiddleware,
  morganInfo,
  morganWarn,
  morganError,
};