Rejestrowanie może być nieocenionym narzędziem do rozwiązywania problemów i analizowania korzystania z aplikacji. Te pakiety pomagają uprościć ten proces.

Właściwe rejestrowanie jest kluczowym aspektem budowania i utrzymywania funkcjonalnych aplikacji internetowych. Może pomóc w śledzeniu błędów, diagnozowaniu problemów z wydajnością i zrozumieniu interakcji użytkowników z Twoją aplikacją.

Node.js ma wiele pakietów rejestrowania, które pomagają tworzyć uporządkowane dzienniki i zarządzać nimi. Tutaj poznasz najlepsze pakiety logowania dostępne obecnie w ekosystemie Node.js i dowiesz się, jak z nich korzystać.

1. Winstona

Winston to biblioteka Node.js, która zapewnia elastyczne funkcje rejestrowania, w tym wiele transportów. „Transport” to nośnik do przechowywania Twoich logów.

Winston obsługuje transport konsoli, plików i sieci. Oznacza to, że możesz wydrukować swoje dzienniki na konsoli, zapisać je w pliku lub wysłać przez sieć. Korzystając z poziomów rejestrowania Winston, możesz tworzyć niestandardowe transporty i filtrować dzienniki na podstawie ważności.

instagram viewer

Możesz zainstalować Winstona jako zależność w katalogu projektu, używając npm, menedżer pakietów JavaScript. Uruchom to polecenie:

npm zainstaluj Winstona

Poniższy blok kodu pokazuje, jak skonfigurować podstawowy system rejestrowania przy użyciu Winstona. Możesz zdefiniować dzienniki dla różnych lokalizacji i różnych poziomów istotności.

konst Winston = wymagać("Winston");

// Rejestrator Winstona
konst logger = winston.createLogger({
poziom: „informacje”,
format: winston.format.json(),
domyślnaMeta: { praca: „moja-usługa” },
transporty: [
nowy winston.transporty. Konsola(),
nowy winston.transporty. Plik({ Nazwa pliku: „dziennik błędów”, poziom: 'błąd' }),
nowy winston.transporty. Plik({ Nazwa pliku: „połączony.log” })
]
});

logger.informacje(„Cześć, Winstonie!”);
logger.warn(„Ostrzeżenie: coś może być nie tak”.);
logger.błąd('Wystąpił błąd.');

Ten kod konfiguruje program rejestrujący z trzema transportami. Pierwszy to transport konsoli, który wysyła komunikaty dziennika do konsoli. Drugi to transport plików, który zapisuje logi z poziomem „błędu” do pliku „error.log”. Trzeci to transport plików, który zapisuje wszystkie logi do pliku „combined.log”.

Logger jest domyślnie ustawiony na logowanie na poziomie „info” i zawiera domyślny obiekt metadanych z polem „service” ustawionym na „my-service”.

Następnie kod rejestruje trzy komunikaty przy użyciu rejestratora odpowiednio na poziomach „informacje”, „ostrzeżenie” i „błąd”. Komunikaty te będą wysyłane do konsoli i odpowiednich plików dziennika zgodnie z konfiguracją transportów.

2. Morgana

Morgan to oprogramowanie pośredniczące do rejestrowania dla Node.js, które zapewnia podstawowe możliwości rejestrowania żądań. Został zaprojektowany tak, aby był lekki i łatwy w użyciu. Morgan działa poprzez przechwytywanie żądań HTTP i rejestrowanie istotnych informacji, takich jak metoda żądania, adres URL, kod statusu itp.

Jedną z kluczowych zalet Morgana jest jego prostota. Możesz dodać go do aplikacji Node.js za pomocą kilku wierszy kodu, ponieważ nie wymaga on dodatkowej konfiguracji do skonfigurowania.

Morgan obsługuje wiele formatów rejestrowania, w tym wspólny, łączny, krótki, malutki, I deweloper formatów, dzięki czemu możesz wybrać ten, który najlepiej odpowiada Twoim potrzebom.

Możesz zainstalować Morgana jako zależność w katalogu projektu, uruchamiając to polecenie:

npm zainstaluj morgana

Ten kod pokazuje, jak używać Morgana w aplikację ekspresową:

konst ekspres = wymagać("wyrazić");
konst Morgana = wymagać(„morgana”);
konst aplikacja = ekspres();

app.use (morgan(„deweloper”));

aplikacja.pobierz("/", (wymaganie, res) => {
wyślij ponownie ("Witaj świecie!");
});

aplikacja.słuchaj(3000, () => konsola.dziennik(„Aplikacja uruchomiona”.));

Kod inicjuje Morgana przy użyciu deweloper format. Kiedy wysyłasz żądanie GET do trasy głównej (/), Morgan rejestruje szczegóły tego żądania w konsoli.

Pomimo swojej prostoty, Morgan to potężny pakiet rejestrowania, który zapewnia podstawowe możliwości rejestrowania żądań dla aplikacji Node.js.

3. pino

Pino to popularny i lekki pakiet rejestrowania dla aplikacji Node.js, który oferuje wysoką wydajność i niskie koszty ogólne, jak stwierdzono w ich wzorce.

Pino obsługuje wiele rodzajów transportu, które można łatwo rozszerzyć o niestandardowe transporty. Jedną z kluczowych funkcji Pino jest możliwość rejestrowania wiadomości w formacie JSON, co ułatwia ich analizę i analizę.

Użycie Pino różni się w zależności od frameworka Node.js; możesz zainstalować Pino jako zależność w katalogu projektu Express, uruchamiając poniższe polecenie:

npm zainstaluj pino-http

W przypadku różnych ram sprawdź plik Dokumentacja Pino.

Ten blok kodu pokazuje użycie Pino w aplikacji Express:

konst ekspres = wymagać("wyrazić");
konst aplikacja = ekspres();
konst pino = wymagać('pino-http')()

app.use (pino)

aplikacja.pobierz("/", (wymaganie, res) => {
pino (req, res) // rejestruje żądanie i odpowiedź
wymaga.log.informacje(„trasa główna”) // rejestruje dodatkowe informacje
wyślij ponownie ("Witaj świecie!");
});

aplikacja.słuchaj(3000, () => konsola.dziennik(„Aplikacja uruchomiona”.));

Ten kod inicjuje Pino i rejestruje go jako oprogramowanie pośrednie. Kiedy wysyłasz żądanie GET do trasy głównej (/), Pino rejestruje szczegóły twojego żądania i jego odpowiedź w konsoli.

4. Odpluskwić

Debug to pakiet rejestrowania dla Node.js wzorowany na technice debugowania rdzenia Node.js. Zapewnia lekkie rozwiązanie do rejestrowania, które umożliwia selektywne włączanie i wyłączanie rejestrowania bez modyfikowania kodu, co ułatwia debugowanie i rozwiązywanie problemów.

Debugowanie umożliwia również ustawienie przestrzeni nazw dzienników, które zapewniają hierarchiczną strukturę dzienników w oparciu o komponenty i moduły w aplikacji, co ułatwia ich filtrowanie i przeszukiwanie. Ponadto debugowanie oferuje różne poziomy rejestrowania, takie jak błędy, ostrzeżenia i informacje, których można użyć do ustalania priorytetów i filtrowania ich dzienników.

Możesz zainstalować Debug jako zależność w katalogu projektu za pomocą tego polecenia:

debugowanie instalacji npm

Ten kod pokazuje użycie Debugowania w aplikacji Express:

konst ekspres = wymagać('wyrazić');

// Zaimportuj debugowanie i utwórz przestrzeń nazw
konst debugować = wymagać('odpluskwić')(„moja aplikacja: serwer”);

konst aplikacja = ekspres();
konst port = proces.env. PORT || 3000;

aplikacja.pobierz('/', (wymaganie, res) => {
odpluskwić(„Otrzymano prośbę o /”);
wyślij ponownie ('Witaj świecie!');
});

app.listen (port, () => {
odpluskwić(`Serwer nasłuchuje na porcie ${port}`);
});

Kod tworzy przestrzeń nazw, moja aplikacja: serwer. Ta przestrzeń nazw będzie rozróżniać dzienniki związane z Twoim „serwer” od modułów powiązanych z innymi modułami o innej przestrzeni nazw w Twojej aplikacji.

Uruchom to polecenie, aby rozpocząć debugowanie:

DEBUG=myapp:* node server.js

Powyższe polecenie dopasuje każdy komunikat dziennika z przestrzenią nazw zaczynającą się od moja aplikacja:. Jeśli chcesz zobaczyć tylko dzienniki związane z Twoim plikiem serwer moduł, możesz ustawić ODPLUSKWIĆ zmienna środowiskowa do moja aplikacja: serwer.

Kolejną zaletą debugowania jest jego kompatybilność z innymi pakietami rejestrowania, takimi jak Winston.

Wybór pakietu logowania

Wybór pakietu rejestrowania to ważna decyzja, która może znacząco wpłynąć na wydajność i skuteczność procesu debugowania. Konieczne jest rozważenie takich czynników, jak funkcje i możliwości pakietu, jego kompatybilność z twoim językiem programowania i środowiskiem programistycznym, a także łatwość obsługi i konfiguracja.

Ostatecznie wybór pakietu logowania będzie zależał od konkretnych potrzeb i wymagań Twojego projektu.