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.
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.