4 gói hàng đầu để đăng nhập Node.js

Ghi nhật ký đúng cách là một khía cạnh quan trọng trong việc xây dựng và duy trì các ứng dụng web chức năng. Nó có thể giúp bạn theo dõi lỗi, chẩn đoán các vấn đề về hiệu suất và hiểu cách người dùng tương tác với ứng dụng của bạn.


Node.js có nhiều gói ghi nhật ký để giúp bạn tạo và quản lý nhật ký có cấu trúc. Tại đây, bạn sẽ khám phá các gói ghi nhật ký hàng đầu hiện có trong hệ sinh thái Node.js và cách sử dụng chúng.


1. Winston

tóm tắt winston github

Winston là một thư viện Node.js cung cấp chức năng ghi nhật ký linh hoạt, bao gồm nhiều lần vận chuyển. “Vận chuyển” là phương tiện lưu trữ nhật ký của bạn.

Winston hỗ trợ vận chuyển bảng điều khiển, tệp và mạng. Điều này có nghĩa là bạn có thể in nhật ký của mình lên bảng điều khiển, ghi chúng vào một tệp hoặc gửi chúng qua mạng. Sử dụng các mức ghi nhật ký của Winston, bạn có thể tạo các lần truyền tải tùy chỉnh và lọc nhật ký dựa trên mức độ nghiêm trọng.

Bạn có thể cài đặt Winston làm phần phụ thuộc trong thư mục dự án của mình bằng cách sử dụng npm, trình quản lý gói JavaScript. Chạy lệnh này:

 npm install winston

Khối mã bên dưới trình bày cách thiết lập hệ thống ghi nhật ký cơ bản bằng Winston. Bạn có thể xác định nhật ký cho các vị trí khác nhau và mức độ nghiêm trọng khác nhau.

 const winston = require("winston");

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'my-service' },
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});


logger.info('Hello, Winston!');
logger.warn('Warning: Something may be wrong.');
logger.error('An error occurred.');


Đoạn mã này cấu hình một bộ ghi với ba lần vận chuyển. Đầu tiên là giao diện điều khiển, giao diện này sẽ xuất thông báo tường trình tới giao diện điều khiển. Thứ hai là phương tiện vận chuyển tệp sẽ ghi nhật ký có mức “lỗi” vào tệp “error.log”. Thứ ba là phương tiện vận chuyển tệp sẽ ghi tất cả nhật ký vào tệp “combined.log”.

Trình ghi nhật ký được đặt để ghi nhật ký ở cấp “thông tin” theo mặc định và bao gồm một đối tượng siêu dữ liệu mặc định với trường “dịch vụ” được đặt thành “dịch vụ của tôi”.

Sau đó, mã này ghi lại ba thông báo bằng cách sử dụng trình ghi nhật ký ở các mức “thông tin”, “cảnh báo” và “lỗi” tương ứng. Các thông báo này sẽ được xuất ra bàn điều khiển và các tệp nhật ký thích hợp theo cấu hình của phương tiện truyền tải.

2.Morgan

Tóm tắt github của Morgan.js

Morgan là phần mềm trung gian ghi nhật ký cho Node.js cung cấp khả năng ghi nhật ký yêu cầu cơ bản. Nó được thiết kế nhẹ và dễ sử dụng. Morgan hoạt động bằng cách chặn các yêu cầu HTTP và ghi nhật ký thông tin liên quan, chẳng hạn như phương thức yêu cầu, URL, mã trạng thái, v.v.

Một trong những lợi ích chính của Morgan là sự đơn giản của nó. Bạn có thể thêm nó vào ứng dụng Node.js bằng một vài dòng mã vì nó không yêu cầu cấu hình bổ sung để thiết lập.

Morgan hỗ trợ nhiều định dạng ghi nhật ký, bao gồm định dạng chung, kết hợp, ngắn, nhỏ xíunhà phát triển các định dạng, cho phép bạn chọn một định dạng phù hợp nhất với nhu cầu của mình.

Bạn có thể cài đặt Morgan làm phụ thuộc trong thư mục dự án của mình bằng cách chạy lệnh này:

 npm install morgan 

Mã này cho biết cách sử dụng Morgan trong ứng dụng Express:

 const express = require("express");
const morgan = require("morgan");
const app = express();
app.use(morgan("dev"));


app.get("https://www.smartreviewaz.com/", (req, res) => {
  res.send("Hello World!");
});


app.listen(3000, () => console.log(`App Started`));


Mã khởi tạo Morgan bằng cách sử dụng nhà phát triển định dạng. Khi bạn thực hiện yêu cầu GET tới tuyến gốc (/), Morgan ghi nhật ký chi tiết của yêu cầu đó vào bảng điều khiển.

Mặc dù đơn giản nhưng Morgan là một gói ghi nhật ký mạnh mẽ cung cấp khả năng ghi nhật ký yêu cầu cần thiết cho các ứng dụng Node.js.

3. Pinô

Pino.js Tóm tắt GitHub

Pino là gói ghi nhật ký nhẹ và phổ biến dành cho các ứng dụng Node.js có hiệu suất nhanh và chi phí thấp, như đã nêu trong điểm chuẩn của chúng.

Pino hỗ trợ nhiều loại phương tiện, dễ dàng mở rộng với phương tiện vận chuyển tùy chỉnh. Một trong những tính năng chính của Pino là khả năng ghi nhật ký các tin nhắn có định dạng JSON, giúp chúng dễ dàng phân tích cú pháp và phân tích.

Việc sử dụng Pino khác nhau tùy thuộc vào khung Node.js; bạn có thể cài đặt Pino làm phụ thuộc trong thư mục dự án Express của mình bằng cách chạy lệnh bên dưới:

 npm install pino-http

Đối với các khung khác nhau, hãy kiểm tra tài liệu Pino.

Khối mã này hiển thị cách sử dụng của Pino trong ứng dụng Express:

 const express = require("express");
const app = express();
const pino = require('pino-http')()
app.use(pino)


app.get("https://www.smartreviewaz.com/", (req, res) => {
  pino(req, res)
  req.log.info('root route')
  res.send("Hello World!");
});


app.listen(3000, () => console.log(`App Started`));


Mã này khởi tạo Pino và đăng ký nó làm phần mềm trung gian. Khi bạn thực hiện yêu cầu GET tới tuyến gốc (/), Pino sẽ ghi nhật ký chi tiết yêu cầu của bạn và phản hồi của nó vào bảng điều khiển.

4. Gỡ lỗi

Tóm tắt Debug.js GitHub

Gỡ lỗi là gói ghi nhật ký cho Node.js được mô phỏng theo kỹ thuật gỡ lỗi của lõi Node.js. Nó cung cấp một giải pháp ghi nhật ký gọn nhẹ cho phép bạn bật hoặc tắt ghi nhật ký một cách chọn lọc mà không sửa đổi mã, giúp dễ dàng gỡ lỗi và khắc phục sự cố.

Gỡ lỗi cũng cho phép bạn đặt không gian tên nhật ký, cung cấp cấu trúc phân cấp cho nhật ký của bạn dựa trên các thành phần và mô-đun trong ứng dụng của bạn, giúp lọc và tìm kiếm chúng dễ dàng hơn. Ngoài ra, Gỡ lỗi cung cấp nhiều cấp độ ghi nhật ký khác nhau, chẳng hạn như lỗi, cảnh báo và thông tin mà bạn có thể sử dụng để ưu tiên và lọc nhật ký của chúng.

Bạn có thể cài đặt Gỡ lỗi làm phụ thuộc trong thư mục dự án của mình bằng lệnh này:

 npm install debug

Mã này hiển thị cách sử dụng Gỡ lỗi trong ứng dụng Express:

 const express = require('express');

const debug = require('debug')('myapp:server');


const app = express();
const port = process.env.PORT || 3000;


app.get("https://www.smartreviewaz.com/", (req, res) => {
  debug('Received request for /');
  res.send('Hello, world!');
});


app.listen(port, () => {
  debug(`Server listening on port ${port}`);
});


Mã này tạo một không gian tên, ứng dụng của tôi: máy chủ. Không gian tên này sẽ phân biệt các nhật ký liên quan đến “máy chủ” từ những mô-đun được liên kết với các mô-đun khác có không gian tên khác trong ứng dụng của bạn.

Chạy lệnh này để bắt đầu gỡ lỗi:

 DEBUG=myapp:* node server.js

Lệnh trên sẽ khớp với bất kỳ thông báo nhật ký nào có không gian tên bắt đầu bằng ứng dụng của tôi:. Nếu bạn chỉ muốn xem nhật ký liên quan đến máy chủ mô-đun, bạn có thể đặt GỠ LỖI biến môi trường thành ứng dụng của tôi: máy chủ.

Một ưu điểm khác của Gỡ lỗi là khả năng tương thích với các gói ghi nhật ký khác, chẳng hạn như Winston.

Chọn gói ghi nhật ký

Chọn gói ghi nhật ký là một quyết định quan trọng có thể ảnh hưởng đáng kể đến hiệu suất và hiệu quả của quá trình gỡ lỗi của bạn. Điều cần thiết là phải xem xét các yếu tố như tính năng và khả năng của gói, khả năng tương thích với ngôn ngữ lập trình và môi trường phát triển của bạn cũng như tính dễ sử dụng và cấu hình của gói.

Cuối cùng, việc lựa chọn gói ghi nhật ký sẽ phụ thuộc vào nhu cầu và yêu cầu cụ thể của dự án của bạn.

Previous Post
Next Post

post written by: