我在main.ts:中有这个代码
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: new LoggerService(
process.env.SERVER_NAME || 'server',
process.env.LOG_LEVEL || 'debug'
),
})
...
记录器服务:
import { LoggerService as NestLoggerService } from '@nestjs/common'
import * as Bunyan from 'bunyan'
export class LoggerService implements NestLoggerService {
private readonly _logger: Bunyan
constructor(name: string, level: string) {
this._logger = Bunyan.createLogger({
name,
level: level as Bunyan.LogLevelString,
}).child({
app_name: name,
})
}
...
在我的控制器中,我如何访问在应用程序引导过程中实例化的记录器?
来自NestJS官方文档:
若要为自定义记录器启用依赖项注入,请创建一个实现LoggerService的类,并将该类注册为某个模块中的提供程序。
然后你应该像这样将其注册为应用程序记录器:
app.useLogger(app.get(MyLogger));
然后你就可以将MyLogger
注入你的控制器,或者任何你需要的地方