Η καταγραφή μπορεί να είναι ένα ανεκτίμητο εργαλείο για την αντιμετώπιση προβλημάτων και την ανάλυση της χρήσης της εφαρμογής. Αυτά τα πακέτα βοηθούν να γίνει μια απλή διαδικασία.
Η σωστή καταγραφή είναι μια κρίσιμη πτυχή της δημιουργίας και της διατήρησης λειτουργικών εφαρμογών Ιστού. Μπορεί να σας βοηθήσει να παρακολουθείτε σφάλματα, να διαγνώσετε προβλήματα απόδοσης και να κατανοήσετε πώς αλληλεπιδρούν οι χρήστες με την εφαρμογή σας.
Το Node.js διαθέτει πολλά πακέτα καταγραφής για να σας βοηθήσει να δημιουργήσετε και να διαχειριστείτε δομημένα αρχεία καταγραφής. Εδώ θα εξερευνήσετε τα κορυφαία πακέτα καταγραφής που είναι διαθέσιμα αυτήν τη στιγμή στο οικοσύστημα Node.js και πώς να τα χρησιμοποιήσετε.
1. Ουίνστον
Το Winston είναι μια βιβλιοθήκη Node.js που παρέχει ευέλικτη λειτουργικότητα καταγραφής, συμπεριλαμβανομένων πολλαπλών μεταφορών. Μια "μεταφορά" είναι ένα μέσο αποθήκευσης για τα κούτσουρα σας.
Το Winston υποστηρίζει μεταφορές κονσόλας, αρχείων και δικτύου. Αυτό σημαίνει ότι μπορείτε να εκτυπώσετε τα αρχεία καταγραφής σας στην κονσόλα, να τα γράψετε σε ένα αρχείο ή να τα στείλετε μέσω δικτύου. Χρησιμοποιώντας τα επίπεδα καταγραφής του Winston, μπορείτε να δημιουργήσετε προσαρμοσμένες μεταφορές και να φιλτράρετε αρχεία καταγραφής με βάση τη σοβαρότητα.
Μπορείτε να εγκαταστήσετε το Winston ως εξάρτηση στον κατάλογο του έργου σας χρησιμοποιώντας npm, ο διαχειριστής πακέτων JavaScript. Εκτελέστε αυτήν την εντολή:
npm εγκατάσταση του Winston
Το μπλοκ κώδικα παρακάτω δείχνει πώς να ρυθμίσετε ένα βασικό σύστημα καταγραφής χρησιμοποιώντας το Winston. Μπορείτε να ορίσετε αρχεία καταγραφής για διαφορετικές τοποθεσίες και διαφορετικά επίπεδα σοβαρότητας.
συνθ Winston = απαιτώ("Ουίνστον");
// Καταγραφέας Winston
συνθ καταγραφέας = winston.createLogger({
επίπεδο: 'πληροφορίες',
μορφή: winston.format.json(),
defaultMeta: { υπηρεσία: «η υπηρεσία μου» },
ΜΕΤΑΦΟΡΕΣ: [
νέος winston.μεταφορές. Κονσόλα(),
νέος winston.μεταφορές. Αρχείο({ όνομα αρχείου: 'αρχείο καταγραφής σφαλμάτων', επίπεδο: 'λάθος' }),
νέος winston.μεταφορές. Αρχείο({ όνομα αρχείου: 'combined.log' })
]
});
logger.info(«Γεια σου, Ουίνστον!»);
logger.warn("Προειδοποίηση: Κάτι μπορεί να μην πάει καλά.");
logger.error('Παρουσιάστηκε σφάλμα.');
Αυτός ο κώδικας διαμορφώνει έναν καταγραφικό με τρεις μεταφορές. Το πρώτο είναι μια μεταφορά κονσόλας, η οποία θα εξάγει μηνύματα καταγραφής στην κονσόλα. Το δεύτερο είναι μια μεταφορά αρχείων που θα γράφει αρχεία καταγραφής με επίπεδο "σφάλματος" σε ένα αρχείο "error.log". Το τρίτο είναι μια μεταφορά αρχείων που θα γράψει όλα τα αρχεία καταγραφής σε ένα αρχείο "combined.log".
Το καταγραφικό έχει ρυθμιστεί να καταγράφει στο επίπεδο "πληροφορίες" από προεπιλογή και περιλαμβάνει ένα προεπιλεγμένο αντικείμενο μεταδεδομένων με ένα πεδίο "υπηρεσία" ορισμένο σε "my-service".
Στη συνέχεια, ο κώδικας καταγράφει τρία μηνύματα χρησιμοποιώντας το καταγραφικό στα επίπεδα "info", "warn" και "error", αντίστοιχα. Αυτά τα μηνύματα θα εξάγονται στην κονσόλα και στα κατάλληλα αρχεία καταγραφής σύμφωνα με τη διαμόρφωση των μεταφορών.
2. Μόργκαν
Το Morgan είναι ένα ενδιάμεσο λογισμικό καταγραφής για το Node.js που παρέχει βασικές δυνατότητες καταγραφής αιτημάτων. Είναι σχεδιασμένο να είναι ελαφρύ και εύκολο στη χρήση. Η Morgan λειτουργεί παρεμποδίζοντας αιτήματα HTTP και καταγράφοντας σχετικές πληροφορίες, όπως τη μέθοδο αιτήματος, τη διεύθυνση URL, τον κωδικό κατάστασης κ.λπ.
Ένα από τα βασικά πλεονεκτήματα του Morgan είναι η απλότητά του. Μπορείτε να το προσθέσετε σε μια εφαρμογή Node.js με μερικές γραμμές κώδικα, καθώς δεν απαιτεί πρόσθετη ρύθμιση παραμέτρων για τη ρύθμιση.
Η Morgan υποστηρίζει πολλαπλές μορφές καταγραφής, συμπεριλαμβανομένων των κοινός, σε συνδυασμό, μικρός, μικροσκοπικός, και dev μορφές, που σας επιτρέπουν να επιλέξετε αυτό που ταιριάζει καλύτερα στις ανάγκες σας.
Μπορείτε να εγκαταστήσετε το Morgan ως εξάρτηση στον κατάλογο του έργου σας εκτελώντας αυτήν την εντολή:
npm εγκατάσταση Morgan
Αυτός ο κώδικας δείχνει πώς να χρησιμοποιήσετε το Morgan στο μια εφαρμογή Express:
συνθ εκφράζω = απαιτώ("εξπρές");
συνθ morgan = απαιτώ("morgan");
συνθ app = express();app.use (morgan("dev"));
app.get("/", (απαιτ., ανταπ.) => {
res.send("Γειά σου Κόσμε!");
});
app.listen(3000, () => κονσόλα.κούτσουρο('Η εφαρμογή ξεκίνησε'));
Ο κώδικας αρχικοποιεί τον Morgan χρησιμοποιώντας το dev μορφή. Όταν κάνετε ένα αίτημα GET στη ριζική διαδρομή (/), η Morgan καταγράφει τις λεπτομέρειες αυτού του αιτήματος στην κονσόλα.
Παρά την απλότητά του, το Morgan είναι ένα ισχυρό πακέτο καταγραφής που παρέχει βασικές δυνατότητες καταγραφής αιτημάτων για εφαρμογές Node.js.
3. Πίνο
Το Pino είναι ένα δημοφιλές και ελαφρύ πακέτο καταγραφής για εφαρμογές Node.js που διαθέτει γρήγορη απόδοση και χαμηλό κόστος, όπως αναφέρεται στο τα σημεία αναφοράς τους.
Το Pino υποστηρίζει πολλούς τύπους μεταφοράς, που επεκτείνονται εύκολα με προσαρμοσμένες μεταφορές. Ένα από τα βασικά χαρακτηριστικά του Pino είναι η ικανότητά του να καταγράφει μηνύματα με μορφοποίηση JSON, γεγονός που καθιστά εύκολη την ανάλυση και την ανάλυσή τους.
Η χρήση του Pino ποικίλλει ανάλογα με το πλαίσιο Node.js. μπορείτε να εγκαταστήσετε το Pino ως εξάρτηση στον κατάλογο του έργου Express εκτελώντας την παρακάτω εντολή:
npm εγκατάσταση του pino-http
Για διαφορετικά πλαίσια, ελέγξτε το Τεκμηρίωση Pino.
Αυτό το μπλοκ κώδικα δείχνει τη χρήση του Pino σε μια εφαρμογή Express:
συνθ εκφράζω = απαιτώ("εξπρές");
συνθ app = express();
συνθ πίνο = απαιτώ('pino-http')()app.use (pino)
app.get("/", (απαιτ., ανταπ.) => {
pino (απ., ρε.) // καταγράφει αίτημα και απάντηση
req.log.info(«ριζική διαδρομή») // καταγράφει πρόσθετες πληροφορίες
res.send("Γειά σου Κόσμε!");
});
app.listen(3000, () => κονσόλα.κούτσουρο('Η εφαρμογή ξεκίνησε'));
Αυτός ο κώδικας αρχικοποιεί το Pino και το καταχωρεί ως ενδιάμεσο λογισμικό. Όταν κάνετε ένα αίτημα GET στη ριζική διαδρομή (/), το Pino καταγράφει τις λεπτομέρειες του αιτήματός σας και την απάντησή του στην κονσόλα.
4. Εντοπισμός σφαλμάτων
Το Debug είναι ένα πακέτο καταγραφής για το Node.js που έχει διαμορφωθεί σύμφωνα με την τεχνική εντοπισμού σφαλμάτων του πυρήνα Node.js. Παρέχει μια ελαφριά λύση καταγραφής που σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε την καταγραφή επιλεκτικά χωρίς να τροποποιήσετε τον κώδικα, διευκολύνοντας τον εντοπισμό σφαλμάτων και την αντιμετώπιση προβλημάτων.
Ο εντοπισμός σφαλμάτων σάς επιτρέπει επίσης να ορίσετε χώρους ονομάτων αρχείων καταγραφής, τα οποία παρέχουν μια ιεραρχική δομή στα αρχεία καταγραφής σας με βάση τα στοιχεία και τις λειτουργικές μονάδες στην εφαρμογή σας, διευκολύνοντας το φιλτράρισμα και την αναζήτησή τους. Επιπλέον, το Debug προσφέρει διάφορα επίπεδα καταγραφής, όπως σφάλμα, προειδοποίηση και πληροφορίες, τα οποία μπορείτε να χρησιμοποιήσετε για να δώσετε προτεραιότητα και να φιλτράρετε τα αρχεία καταγραφής τους.
Μπορείτε να εγκαταστήσετε το Debug ως εξάρτηση στον κατάλογο του έργου σας με αυτήν την εντολή:
npm εγκατάσταση εντοπισμού σφαλμάτων
Αυτός ο κώδικας δείχνει τη χρήση του Debug σε μια εφαρμογή Express:
συνθ εκφράζω = απαιτώ('εξπρές');
// Εισαγωγή εντοπισμού σφαλμάτων και δημιουργία χώρου ονομάτων
συνθ αποσφαλμάτωση = απαιτώ('debug')("myapp: διακομιστής");συνθ app = express();
συνθ port = διεργασία.env. ΛΙΜΑΝΙ || 3000;app.get('/', (απαιτ., ανταπ.) => {
αποσφαλμάτωση('Ελήφθηκε αίτημα για /');
res.send('Γειά σου Κόσμε!');
});
app.listen (port, () => {
αποσφαλμάτωση(`Ακρόαση διακομιστή στη θύρα ${port}`);
});
Ο κώδικας δημιουργεί έναν χώρο ονομάτων, myapp: διακομιστής. Αυτός ο χώρος ονομάτων θα διακρίνει τα αρχεία καταγραφής που σχετίζονται με το "υπηρέτης" λειτουργική μονάδα από αυτές που σχετίζονται με άλλες λειτουργικές μονάδες με διαφορετικό χώρο ονομάτων στην εφαρμογή σας.
Εκτελέστε αυτήν την εντολή για να ξεκινήσετε τον εντοπισμό σφαλμάτων:
DEBUG=myapp:* node server.js
Αυτή η παραπάνω εντολή θα αντιστοιχίσει οποιοδήποτε μήνυμα καταγραφής με έναν χώρο ονομάτων που ξεκινά με myapp:. Εάν θέλετε μόνο να δείτε αρχεία καταγραφής που σχετίζονται με το δικό σας υπηρέτης ενότητα, μπορείτε να ορίσετε το ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ μεταβλητή περιβάλλοντος σε myapp: διακομιστής.
Ένα άλλο πλεονέκτημα του Debug είναι η συμβατότητά του με άλλα πακέτα καταγραφής, όπως το Winston.
Επιλογή πακέτου υλοτομίας
Η επιλογή ενός πακέτου καταγραφής είναι μια σημαντική απόφαση που μπορεί να επηρεάσει σημαντικά την αποτελεσματικότητα και την αποτελεσματικότητα της διαδικασίας εντοπισμού σφαλμάτων. Είναι σημαντικό να ληφθούν υπόψη παράγοντες όπως τα χαρακτηριστικά και οι δυνατότητες του πακέτου, του συμβατότητα με τη γλώσσα προγραμματισμού και το περιβάλλον ανάπτυξης και την ευκολία χρήσης και διαμόρφωση.
Τελικά, η επιλογή του πακέτου καταγραφής θα εξαρτηθεί από τις συγκεκριμένες ανάγκες και απαιτήσεις του έργου σας.