J'ai essayé d'utiliser la variable interne Logger
de nestjs (décrite sur https://docs.nestjs.com/techniques/logger -> mais sans description de son utilisation)
Mais j’ai eu des problèmes (essayé d’injecter LoggerService
et ainsi de suite)
Quelqu'un peut-il expliquer comment faire cela?
TIA
Mieux que d’accéder à Logger
statiquement, vous devez créer une instance pour votre classe:
@Controller()
export class AppController {
private readonly logger = new Logger(AppController.name);
@Get()
async get() {
this.logger.log('Getting stuff');
}
}
1) Vous pouvez fournir un contexte dans le constructeur tel que new Logger(AppController.name)
pour que le nom de la classe (ou toute autre chose) fasse partie de tous les messages de journal de cette classe.
2) Si, à un moment donné, vous souhaitez étendre ou remplacer la variable LoggerService
par défaut, vous n'avez pas besoin de modifier le code de votre application en plus de la configuration du nouvel enregistreur. Votre nouvel enregistreur sera automatiquement utilisé. Si vous y accédez de manière statique, il continuera à prendre l'implémentation par défaut.
const app = await NestFactory.create(AppModule, {logger: new MyLogger()});
La réponse est simple Il existe des méthodes statiques sur la classe Logger.
par exemple.
static log(message: string, context = '', isTimeDiffEnabled = true)
Usage:
Logger.log('Only a test');
Vous devez d'abord importer dans votre classe:
import { Logger } from '@nestjs/common';
et alors vous pouvez commencer par vous connecter:
Logger.log('info')
Logger.warn('warning')
Logger.error('something went wrong! ', error)