Newer
Older
import {
Injectable,
NestInterceptor,
ExecutionContext,
CallHandler,
Logger,
} from '@nestjs/common';
@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}`
))
)
}