refactor: apply second review suggestions
Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
+5
-6
@@ -29,8 +29,7 @@ import request from 'supertest';
|
||||
import { MiddlewareFactory } from './MiddlewareFactory';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.useFakeTimers();
|
||||
jest.setSystemTime(new Date('2024-11-20T00:00:00Z'));
|
||||
jest.useFakeTimers({ now: new Date('2024-11-20T00:00:00Z') });
|
||||
|
||||
describe('MiddlewareFactory', () => {
|
||||
describe('middleware.error', () => {
|
||||
@@ -256,10 +255,10 @@ describe('MiddlewareFactory', () => {
|
||||
),
|
||||
{
|
||||
type: 'incomingRequest',
|
||||
date: '20/Nov/2024:00:00:00 +0000',
|
||||
date: 'Wed, 20 Nov 2024 00:00:00 GMT',
|
||||
method: 'GET',
|
||||
url: '/',
|
||||
status: '200',
|
||||
status: 200,
|
||||
httpVersion: '1.1',
|
||||
contentLength: '11',
|
||||
},
|
||||
@@ -283,10 +282,10 @@ describe('MiddlewareFactory', () => {
|
||||
),
|
||||
{
|
||||
type: 'incomingRequest',
|
||||
date: '20/Nov/2024:00:00:00 +0000',
|
||||
date: 'Wed, 20 Nov 2024 00:00:00 GMT',
|
||||
method: 'GET',
|
||||
url: '/',
|
||||
status: '200',
|
||||
status: 200,
|
||||
httpVersion: '1.1',
|
||||
userAgent: 'test-agent',
|
||||
referrer: 'test-referrer',
|
||||
|
||||
@@ -55,12 +55,13 @@ function getLogMeta(
|
||||
req: IncomingMessage,
|
||||
res: ServerResponse,
|
||||
) {
|
||||
const status = Number(tokens.status(req, res));
|
||||
return {
|
||||
date: tokens.date(req, res, 'clf'),
|
||||
date: tokens.date(req, res, 'web'),
|
||||
method: tokens.method(req, res),
|
||||
url: tokens.url(req, res),
|
||||
httpVersion: tokens['http-version'](req, res),
|
||||
status: tokens.status(req, res),
|
||||
status: isNaN(status) ? undefined : status,
|
||||
contentLength: tokens.res(req, res, 'content-length'),
|
||||
referrer: tokens.referrer(req, res),
|
||||
userAgent: tokens.req(req, res, 'user-agent'),
|
||||
@@ -160,19 +161,20 @@ export class MiddlewareFactory {
|
||||
*/
|
||||
logging(): RequestHandler {
|
||||
const logger = this.#logger;
|
||||
let meta: Record<string, string | undefined> = {};
|
||||
return morgan(
|
||||
(tokens: TokenIndexer, req: IncomingMessage, res: ServerResponse) => {
|
||||
meta = getLogMeta(tokens, req, res);
|
||||
return getLogMessage(tokens, req, res);
|
||||
const meta = getLogMeta(tokens, req, res);
|
||||
const message = getLogMessage(tokens, req, res);
|
||||
return JSON.stringify({ meta, message });
|
||||
},
|
||||
{
|
||||
stream: {
|
||||
write(message: string) {
|
||||
write(json: string) {
|
||||
const { meta, message } = JSON.parse(json);
|
||||
logger.info(message.trimEnd(), {
|
||||
type: 'incomingRequest',
|
||||
...Object.entries(meta).reduce((reduced, [key, value]) => {
|
||||
return value ? { ...reduced, [key]: value } : reduced;
|
||||
...Object.entries(meta).reduce((rest, [key, value]) => {
|
||||
return value ? { ...rest, [key]: value } : rest;
|
||||
}, {}),
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user