@mark01/express-utils
Version:
npm package that contains utilities for express.js
42 lines (41 loc) • 1.33 kB
JavaScript
import expressWinston from 'express-winston';
import path from 'path';
import { fileURLToPath } from 'url';
import winston from 'winston';
import getDeviceID from '../util/get-device-id';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const options = (filename) => ({
transports: [
new winston.transports.File({
filename: path.join(__dirname, '..', '..', '..', 'logs', filename),
}),
],
format: winston.format.combine(winston.format.timestamp(), winston.format.json()),
meta: true,
dynamicMeta: (req) => ({ deviceInfo: getDeviceID(req) }),
msg: 'HTTP {{req.method}} {{req.url}}',
expressFormat: false,
colorize: false,
headerBlacklist: ['authorization', 'cookie'],
ignoredRoutes: ['/api/v1/auth/status', '/api/v1/attendances/status'],
requestWhitelist: [
'url',
'headers',
'method',
'httpVersion',
'originalUrl',
'query',
'body',
],
bodyBlacklist: [
'password',
'currentPassword',
'newPassword',
'confirmPassword',
],
});
const successLogger = expressWinston.logger(options('traffic.log'));
export { successLogger };
const errorLogger = expressWinston.errorLogger(options('errors.log'));
export { errorLogger };