change: log messages in ExpressHttpServer

This commit is contained in:
Ruben Taelman 2020-09-22 11:31:43 +02:00 committed by Ruben Taelman
parent aaa49219dc
commit 6212c15352
2 changed files with 8 additions and 1 deletions

View File

@ -2,9 +2,12 @@ import type { Server } from 'http';
import cors from 'cors';
import type { Express } from 'express';
import express from 'express';
import { getLoggerFor } from '../logging/LogUtil';
import type { HttpHandler } from './HttpHandler';
export class ExpressHttpServer {
protected readonly logger = getLoggerFor(this);
private readonly handler: HttpHandler;
public constructor(handler: HttpHandler) {
@ -35,10 +38,11 @@ export class ExpressHttpServer {
// Delegate to the main handler
app.use(async(request, response, done): Promise<void> => {
try {
this.logger.log('info', `Received request for ${request.url}`);
await this.handler.handleSafe({ request, response });
} catch (error: unknown) {
const errMsg = error instanceof Error ? `${error.name}: ${error.message}\n${error.stack}` : 'Unknown error.';
process.stderr.write(errMsg);
this.logger.log('error', errMsg);
response.status(500).contentType('text/plain').send(errMsg);
} finally {
done();

View File

@ -1,5 +1,7 @@
import type { Server } from 'http';
import request from 'supertest';
import { LazyLoggerFactory } from '../../../src/logging/LazyLoggerFactory';
import { VoidLoggerFactory } from '../../../src/logging/VoidLoggerFactory';
import { ExpressHttpServer } from '../../../src/server/ExpressHttpServer';
import { HttpHandler } from '../../../src/server/HttpHandler';
import type { HttpRequest } from '../../../src/server/HttpRequest';
@ -31,6 +33,7 @@ describe('ExpressHttpServer', (): void => {
beforeAll(async(): Promise<void> => {
// Prevent test from writing to stderr
mock = jest.spyOn(process.stderr, 'write').mockImplementation((): boolean => true);
LazyLoggerFactory.getInstance().setLoggerFactory(new VoidLoggerFactory());
});
beforeEach(async(): Promise<void> => {