lux-framework
Version:
Build scalable, Node.js-powered REST APIs with almost no code.
54 lines (44 loc) • 927 B
JavaScript
// @flow
import type Logger from '../../index';
import type { Request, Response } from '../../../server';
import filterParams from './filter-params';
const MESSAGE = 'Processed Request';
/**
* @private
*/
export default function logJSON(logger: Logger, {
request: req,
response: res
}: {
request: Request;
response: Response;
}): void {
res.once('finish', () => {
const {
method,
headers,
httpVersion,
url: {
path
},
connection: {
remoteAddress
}
} = req;
const { statusCode: status } = res;
const userAgent = headers.get('user-agent');
const protocol = `HTTP/${httpVersion}`;
let { params } = req;
params = filterParams(params, ...logger.filter.params);
logger.info({
message: MESSAGE,
method,
path,
params,
status,
protocol,
userAgent,
remoteAddress
});
});
}