/** * @author wuweiru * @date 2020/10/26 13:33 */ import { ExecutionContext, createParamDecorator } from '@nestjs/common'; import * as requestIp from 'request-ip'; import { LogMicroServiceHandler } from '../../common/microservice/log.microservice.handler'; export const logify = createParamDecorator( async (service: string, context: ExecutionContext) => { const request = context.switchToHttp().getRequest(); let clientIp = requestIp.getClientIp(request); if (!clientIp) { clientIp = ''; } await LogMicroServiceHandler.recordCommonLog({ service, requestUrl: request.url, towifyUserId: request.header.towifyUserId, requestParams: request.requestParams, requestQuery: request.requestQuery, requestBody: request.requestBody, clientIp }); } );