main
Peace 5 days ago
parent 0f25746a87
commit 9e5e4ae241
  1. 9
      nest-start/src/app.module.ts
  2. 7
      nest-start/src/logger/logger.middleware.spec.ts
  3. 17
      nest-start/src/logger/logger.middleware.ts

@ -1,11 +1,16 @@
import { Module } from "@nestjs/common";
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { CatsModule } from "./cats/cats.module";
import { LoggerMiddleware } from "./logger/logger.middleware";
@Module({
imports: [CatsModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes("*");
}
}

@ -0,0 +1,7 @@
import { LoggerMiddleware } from './logger.middleware';
describe('LoggerMiddleware', () => {
it('should be defined', () => {
expect(new LoggerMiddleware()).toBeDefined();
});
});

@ -0,0 +1,17 @@
import { Injectable, Logger, NestMiddleware } from "@nestjs/common";
import { Request, Response, NextFunction } from "express";
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
private logger = new Logger("HTTP");
use(req: Request, res: Response, next: NextFunction) {
res.on("finish", () => {
this.logger.log(
`${req.ip} ${req.method} ${res.statusCode} ${req.originalUrl}`,
);
});
next();
}
}
Loading…
Cancel
Save