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' ;
2
2
import { AppController } from './app.controller' ;
3
3
import { AppService } from './app.service' ;
4
4
import { MinecraftModule } from './minecraft/minecraft.module' ;
5
5
import { SourceModule } from './source/source.module' ;
6
6
import { FivemModule } from './fivem/fivem.module' ;
7
+ import { LoggerMiddleware } from 'src/middleware/logger.middleware' ;
7
8
8
9
@Module ( {
9
10
imports : [ MinecraftModule , SourceModule , FivemModule ] ,
10
11
controllers : [ AppController ] ,
11
12
providers : [ AppService ] ,
12
13
} )
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 1
1
import { NestFactory } from '@nestjs/core' ;
2
2
import { AppModule } from './app.module' ;
3
3
import { DocumentBuilder , SwaggerModule } from '@nestjs/swagger' ;
4
- import { ValidationPipe } from '@nestjs/common' ;
4
+ import { Logger , ValidationPipe } from '@nestjs/common' ;
5
5
6
6
async function bootstrap ( ) {
7
+ const port : number | string = process . env . PORT || 3000 ;
7
8
const app = await NestFactory . create ( AppModule ) ;
8
9
const swaggerConfig = new DocumentBuilder ( )
9
10
. setTitle ( "Game Server Tracker - API" )
@@ -16,6 +17,7 @@ async function bootstrap() {
16
17
SwaggerModule . setup ( 'api-docs' , app , swaggerDocument ) ;
17
18
app . useGlobalPipes ( new ValidationPipe ( { disableErrorMessages : false , whitelist : true } ) )
18
19
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" ) ;
20
22
}
21
23
bootstrap ( ) ;
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