diff --git a/packages/common/file-stream/streamable-file.ts b/packages/common/file-stream/streamable-file.ts index 971741d5a0d..c41dbb388db 100644 --- a/packages/common/file-stream/streamable-file.ts +++ b/packages/common/file-stream/streamable-file.ts @@ -3,6 +3,7 @@ import { types } from 'util'; import { HttpStatus } from '../enums'; import { isFunction } from '../utils/shared.utils'; import { StreamableFileOptions, StreamableHandlerResponse } from './interfaces'; +import { Logger } from '../services'; /** * @see [Streaming files](https://docs.nestjs.com/techniques/streaming-files) @@ -11,6 +12,7 @@ import { StreamableFileOptions, StreamableHandlerResponse } from './interfaces'; */ export class StreamableFile { private readonly stream: Readable; + protected logger = new Logger('StreamableFile'); protected handleError: ( err: Error, @@ -28,6 +30,10 @@ export class StreamableFile { res.send(err.message); }; + protected logError: (err: Error) => void = (err: Error) => { + this.logger.error(err.message, err.stack); + }; + constructor(buffer: Uint8Array, options?: StreamableFileOptions); constructor(readable: Readable, options?: StreamableFileOptions); constructor( @@ -74,4 +80,13 @@ export class StreamableFile { this.handleError = handler; return this; } + + get errorLogger() { + return this.logError; + } + + setErrorLogger(handler: (err: Error) => void) { + this.logError = handler; + return this; + } } diff --git a/packages/platform-express/adapters/express-adapter.ts b/packages/platform-express/adapters/express-adapter.ts index 83358b69729..faf26eb01bc 100644 --- a/packages/platform-express/adapters/express-adapter.ts +++ b/packages/platform-express/adapters/express-adapter.ts @@ -96,7 +96,7 @@ export class ExpressAdapter extends AbstractHttpAdapter< response, (err: Error) => { if (err) { - this.logger.error(err.message, err.stack); + body.errorLogger(err); } }, );