Как использовать пользовательский регистратор в TypeORM с Nest.js ?

#javascript #node.js #logging #nestjs #typeorm

#javascript #node.js #ведение журнала #nestjs #typeorm

Вопрос:

Я создал свой пользовательский класс DBLogger, который реализует интерфейс Logger от typeorm.

В app.module.ts добавлено следующее:

 TypeOrmModule.forRoot({
  logging: true,
  logger: new DBLogger(),
}),
 

Мой класс DBLogger выглядит следующим образом:

 export class DBLogger implements Logger {
    logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) {
        someCustomLogger(query, parameters, queryRunner);
    }

    log(level: string, message: any, queryRunner?: QueryRunner) {
        someCustomLogger(level, message, queryRunner);
    }

    logQueryError(
        error: string | Error,
        query: string,
        parameters?: any[],
        queryRunner?: QueryRunner,
    ) {
        someCustomLogger(error, query, parameters, queryRunner);
    }

    logQuerySlow(
        _,
        query: string,
        parameters?: any[],
        queryRunner?: QueryRunner,
    ) {
        someCustomLogger(error, query, parameters, queryRunner);
    }

    logSchemaBuild(message: string, queryRunner?: QueryRunner) {
        someCustomLogger(message, queryRunner);
    }

    logMigration(message: string, queryRunner?: QueryRunner) {
        someCustomLogger(message, queryRunner);
    }
}
 

Но все журналы typeorm записываются в стандартный вывод (моя консоль). Что не так?

Комментарии:

1. Вы можете следовать этому github.com/typeorm/typeorm/blob/master/docs/logging.md Ты можешь показать DBLogger класс? Я не думаю, что nestjs сам что-то делает с typeorm logger

2. @MicaelLevi, конечно, я отредактировал вопрос