error-logging.interceptor.ts•763 B
import {
Injectable,
NestInterceptor,
ExecutionContext,
CallHandler,
Logger,
} from '@nestjs/common';
import { Observable, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
@Injectable()
export class ErrorLoggingInterceptor implements NestInterceptor {
private readonly logger = new Logger(ErrorLoggingInterceptor.name);
intercept(_context: ExecutionContext, next: CallHandler): Observable<any> {
return next.handle().pipe(
catchError((error) => {
this.logger.error('Error caught in interceptor:', {
name: error.name,
message: error.message,
stack: error.stack,
});
return throwError(() => error);
})
);
}
}
export default ErrorLoggingInterceptor;