Skip to content
Snippets Groups Projects
logging.interceptor.ts 755 B
Newer Older
Samuli Virtapohja's avatar
Samuli Virtapohja committed
import {
  Injectable,
  NestInterceptor,
  ExecutionContext,
  CallHandler,
  Logger,
} from '@nestjs/common';
L4168's avatar
asd
L4168 committed
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
Samuli Virtapohja's avatar
Samuli Virtapohja committed
/*
L4168's avatar
asd
L4168 committed
@Injectable()
export class LoggingInterceptor implements NestInterceptor {
    intercept(
        context: ExecutionContext,
        next: CallHandler,
    ): Observable<any> {
        const req = context.switchToHttp().getRequest();
        const method = req.method;
        const url = req.url;
        const now = Date.now();
        return next.handle().pipe(
            tap(() => Logger.log(
                `${method} ${url} ${Date.now() - now}ms`,
                `${context.getClass().name}.${context.getHandler().name}` 
            ))
        )
    }
Samuli Virtapohja's avatar
Samuli Virtapohja committed
}*/