feat(server): enable cls plugin to store request id (#9758)

POC
This commit is contained in:
fengmk2
2025-01-20 10:00:21 +00:00
parent fa5e6e1f45
commit 2ae05c28b7
7 changed files with 70 additions and 4 deletions

View File

@@ -1,22 +1,28 @@
import { LoggingWinston } from '@google-cloud/logging-winston';
import { LoggerService, Provider } from '@nestjs/common';
import { createLogger, transports } from 'winston';
import { createLogger, format, transports } from 'winston';
import { AFFiNELogger as LoggerProvide } from '../../../base/logger';
import { AFFiNELogger } from './logger';
const moreMetadata = format(info => {
info.requestId = LoggerProvide.getRequestId();
return info;
});
export const loggerProvider: Provider<LoggerService> = {
provide: LoggerProvide,
useFactory: () => {
const loggingWinston = new LoggingWinston();
// Create a Winston logger that streams to Cloud Logging
const instance = createLogger({
level: 'log',
level: 'info',
transports: [
new transports.Console(),
// Add Cloud Logging
loggingWinston,
],
format: format.combine(moreMetadata(), format.json()),
});
return new AFFiNELogger(instance);
},