mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			23 lines
		
	
	
		
			688 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			688 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { Injectable, NestMiddleware, Logger } from '@nestjs/common';
 | 
						|
 | 
						|
import { Request, Response, NextFunction } from 'express';
 | 
						|
 | 
						|
@Injectable()
 | 
						|
export class AppLoggerMiddleware implements NestMiddleware {
 | 
						|
  private logger = new Logger('HTTP');
 | 
						|
 | 
						|
  use(request: Request, response: Response, next: NextFunction): void {
 | 
						|
    const { ip, method, path: url, baseUrl } = request;
 | 
						|
    const userAgent = request.get('user-agent') || '';
 | 
						|
 | 
						|
    response.on('close', () => {
 | 
						|
      const { statusCode } = response;
 | 
						|
      const contentLength = response.get('content-length');
 | 
						|
 | 
						|
      this.logger.log(`${method} ${baseUrl} ${statusCode} ${contentLength} - ${userAgent} ${ip}`);
 | 
						|
    });
 | 
						|
 | 
						|
    next();
 | 
						|
  }
 | 
						|
}
 |