File tree Expand file tree Collapse file tree 3 files changed +31
-4
lines changed Expand file tree Collapse file tree 3 files changed +31
-4
lines changed Original file line number Diff line number Diff line change 1- import { Module } from '@nestjs/common' ;
1+ import { MiddlewareConsumer , Module , NestModule } from '@nestjs/common' ;
22import { AppController } from './app.controller' ;
33import { AppService } from './app.service' ;
44import { MinecraftModule } from './minecraft/minecraft.module' ;
55import { SourceModule } from './source/source.module' ;
66import { FivemModule } from './fivem/fivem.module' ;
7+ import { LoggerMiddleware } from 'src/middleware/logger.middleware' ;
78
89@Module ( {
910 imports : [ MinecraftModule , SourceModule , FivemModule ] ,
1011 controllers : [ AppController ] ,
1112 providers : [ AppService ] ,
1213} )
13- export class AppModule { }
14+ export class AppModule implements NestModule {
15+ configure ( consumer : MiddlewareConsumer ) {
16+ consumer
17+ . apply ( LoggerMiddleware )
18+ . forRoutes ( '*' ) ;
19+ }
20+ }
Original file line number Diff line number Diff line change 11import { NestFactory } from '@nestjs/core' ;
22import { AppModule } from './app.module' ;
33import { DocumentBuilder , SwaggerModule } from '@nestjs/swagger' ;
4- import { ValidationPipe } from '@nestjs/common' ;
4+ import { Logger , ValidationPipe } from '@nestjs/common' ;
55
66async function bootstrap ( ) {
7+ const port : number | string = process . env . PORT || 3000 ;
78 const app = await NestFactory . create ( AppModule ) ;
89 const swaggerConfig = new DocumentBuilder ( )
910 . setTitle ( "Game Server Tracker - API" )
@@ -16,6 +17,7 @@ async function bootstrap() {
1617 SwaggerModule . setup ( 'api-docs' , app , swaggerDocument ) ;
1718 app . useGlobalPipes ( new ValidationPipe ( { disableErrorMessages : false , whitelist : true } ) )
1819 app . enableCors ( ) ;
19- await app . listen ( process . env . PORT || 3000 ) ;
20+ await app . listen ( port ) ;
21+ Logger . log ( `GST Lametric API is running. Listening on port ${ port } ` , "Bootstrap" ) ;
2022}
2123bootstrap ( ) ;
Original file line number Diff line number Diff line change 1+ import { Injectable , Logger , NestMiddleware } from "@nestjs/common" ;
2+ import { Request , Response , NextFunction } from 'express' ;
3+
4+ @Injectable ( )
5+ export class LoggerMiddleware implements NestMiddleware {
6+ private logger : Logger = new Logger ( 'HTTP' ) ;
7+ use ( req : Request , res : Response , next : NextFunction ) {
8+ res . on ( "finish" , ( ) => {
9+ if ( res . statusCode >= 500 )
10+ this . logger . error ( `HTTP request ${ req . method } ${ req . url } ${ res . statusCode } ${ res . statusMessage } ` ) ;
11+ else if ( res . statusCode >= 400 )
12+ this . logger . warn ( `HTTP request ${ req . method } ${ req . url } ${ res . statusCode } ${ res . statusMessage } ` ) ;
13+ else
14+ this . logger . log ( `HTTP request ${ req . method } ${ req . url } ${ res . statusCode } ` ) ;
15+ } ) ;
16+ next ( ) ;
17+ }
18+ }
You can’t perform that action at this time.
0 commit comments