np-express-winston-logger
Version:
A TypeScript logger for Express using Winston and Elasticsearch
33 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHttpLogger = void 0;
const expressWinston = require("express-winston");
const log_level_1 = require("./types/log-level");
const HTTP_MESSAGE_FORMAT = "{{req.method}} {{req.url}} {{res.statusCode}} {{res.responseTime}}ms";
const createHttpLogger = (logger) => {
const httpLogger = expressWinston.logger({
winstonInstance: logger,
msg: HTTP_MESSAGE_FORMAT,
expressFormat: true,
colorize: true,
level: (_req, res) => {
const status = res.statusCode;
if (status >= 400)
return log_level_1.LogLevel.ERROR;
if (status >= 300)
return log_level_1.LogLevel.HTTP;
return log_level_1.LogLevel.INFO;
},
ignoreRoute: () => false,
meta: true,
dynamicMeta: (req, res) => ({
params: req.params,
query: req.query,
body: req.body,
statusCode: res.statusCode,
}),
});
return httpLogger;
};
exports.createHttpLogger = createHttpLogger;
//# sourceMappingURL=http-logger.js.map