这是我遇到的问题:
我在 Nest.js 中使用我的自定义记录器:
export class ReportLogger extends ConsoleLogger {
verbose(message: string) {
console.log('?Verbose?Reporting', message);
super.verbose.apply(this, arguments);
}
log(message: string) {
console.log('?Log?Reporting', message);
super.log.apply(this, arguments);
}
}
Run Code Online (Sandbox Code Playgroud)
和log.interceptor.ts文件:
export class LogInterceptor implements NestInterceptor {
constructor(private reportLogger: ReportLogger) {
this.reportLogger.setContext('LogInterceptor');
}
intercept(context: ExecutionContext, next: CallHandler) {
const http = context.switchToHttp();
const request = http.getRequest();
const now = Date.now();
return next
.handle()
.pipe(
tap(() =>
this.reportLogger.log(
`${request.method} ${request.url} ${Date.now() - now}ms`,
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是main.ts文件:
async …Run Code Online (Sandbox Code Playgroud)