2 основных варианта использования логгера в NestJS

Ведение журнала - очень важный аспект любого серьезного опыта разработки. Это очень важно на этапе разработки, так как помогает выявлять ошибки.

Но ведение журнала также важно на этапе производства, особенно когда речь идет о заданиях cron и других асинхронных задачах. Это потому, что вам нужно следить за тем, что происходит на вашем сервере. Если задание cron не работает должным образом, вы должны узнать об этом первым.

В этом руководстве мы собираемся изучить, как реализовать регистратор NestJS для вашего приложения.

В основном вы хотите использовать журналы на двух уровнях: уровень HTTP-запроса и уровень обслуживания.

Давайте нырнем! 😄

PS: Этот урок также доступен в виде видео :)

1. Установите NestJS Logger.

NestJS имеет встроенный логгер как общий пакет. Так что ничего устанавливать не нужно. Его можно настроить, но на этом этапе давайте просто импортируем его как есть. Вы можете импортировать сервис регистратора с помощью:

import { Logger } from '@nestjs/common';

Мы могли бы использовать любой другой регистратор, такой как Morgan или Winston, но поскольку у NestJS он уже есть, давайте использовать его и не усложнять себе жизнь внешними регистраторами, такими как Winston или Morgan.

2. Используйте регистратор NestJS внутри модуля для регистрации бизнес-логики.

Чаще всего регистратор используется внутри службы. Может быть полезно регистрировать значения при выполнении некоторой бизнес-логики или при запуске или уничтожении службы.

В этом примере мы создаем экземпляр объекта регистратора и записываем строку в функцию getHello ().

Это довольно просто, и тот же процесс можно использовать в контроллерах вложенности или в любом файле, который поддерживает внедрение зависимостей.

Я считаю, что служебные логгеры могут быть особенно полезны при работе с cronjobs.

3. Используйте регистратор NestJS внутри промежуточного программного обеспечения для регистрации входящих запросов.

Один из наиболее распространенных вариантов использования регистратора - это ведение журнала HTTP-запросов. Вы хотите видеть информацию о запросах API, сделанных к вашему серверу. Чтобы регистрировать запросы, нам нужно разместить нашу логику ведения журнала внутри промежуточного программного обеспечения.

Промежуточное ПО запускается перед охранниками, которые запускаются перед перехватчиками. Так что это идеальное место для регистрации всех входящих запросов, прежде чем их можно будет отклонить.

Вот как это сделать:

1. Создайте промежуточное ПО для регистратора.

Чтобы регистрировать запросы, мы сначала создадим промежуточное программное обеспечение регистратора. Здесь мы используем экспресс. Если вы используете fastify, вам необходимо проверить конкретную реализацию fastify.

2. Импортируйте промежуточное ПО в AppModule.

После того, как вы создали промежуточное ПО для ведения журнала, вам необходимо импортировать его в AppModule, основной модуль вашего приложения.

Вы можете напрямую импортировать регистратор как глобальный модуль в main.ts, но я не рекомендую это делать. Если вы импортируете его в main.ts, вы потеряете возможность использовать внедрение зависимостей в промежуточном программном обеспечении регистратора. Что всегда может быть полезно.

И здесь мы идем! Теперь мы можем регистрировать запросы.

Заключение

Ведение журнала - очень полезная функция, но для ее правильной работы с NestJS требуются некоторые особенности.

Я загрузил репозиторий с кодом, чтобы вы могли проверить, если у вас что-то не работает:



Если вам понравилась эта статья, рассмотрите возможность присоединиться к моему информационному бюллетеню и подписаться на меня в Twitter, чтобы быть в курсе последних новостей.

Другие статьи, которые вы, возможно, захотите прочитать



Больше контента на plainenglish.io