logging.interceptor.ts
import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http'; import {Observable} from 'rxjs/Observable'; import {tap} from 'rxjs/operators'; export class LoggingInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { return next.handle(req).pipe( tap(event => { console.log('Logging interceptor', event); }) ); } }
app.module.ts
import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angular/core'; import {FormsModule} from '@angular/forms'; import {AppComponent} from './app.component'; import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; import {AuthInterceptor} from './auth.interceptor'; import {LoggingInterceptor} from './logging.interceptor'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, FormsModule, HttpClientModule ], providers: [ {provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true}, {provide: HTTP_INTERCEPTORS, useClass: LoggingInterceptor, multi: true} ], bootstrap: [AppComponent] }) export class AppModule { }
References
https://angular.io/guide/http#intercepting-requests-and-responses