TOP gói ghi nhật ký tốt nhất trong Node.js

Logging hay ghi nhật ký có thể là công cụ đáng giá để xử lý vấn đề và phân tích cách dùng ứng dụng. Những gói dưới đây sẽ giúp bạn biến quá trình này trở nên thật đơn giản.

Node.js

  • 0

    1. Winston

    WinstonJS

    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 phương tiện. Một “transport” là phương tiện lưu trũ cho các bản ghi nhật ký của bạn.

    Winston hỗ trợ transport consle, file và network. Điều này có nghĩa bạn có thể in bản ghi sang console, ghi chúng vào file hoặc gửi chúng qua mạng Internet. Dùng các cấp độ ghi nhật ký của Winston, bạn có thể tạo các transport tùy chỉnh và lọc bản ghi 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 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");
    
    // Winston logger
    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".

    Logger này đượ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 "service" được đặt thành "my service".

    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 sẽ được xuất ra console 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.

  • 0

    2. Morgan

    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 ưu điểm chính của Morgan là sự đơn giản. Bạn có thể thêm nó vào ứng dụng Node.js chỉ bằng một vài dòng code 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 các định dạng common, combined, short, tiny, dev, cho phép bạn chọn một định dạng phù hợp nhất với nhu cầu.

    Bạn có thể cài đặt Morgan làm phần 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

    Code này hiện cách dùng Morgan dưới dạng một ứng dụng Express:

    const express = require("express");
    const morgan = require("morgan");
    const app = express();
    
    app.use(morgan("dev"));
    
    app.get("/", (req, res) => {
      res.send("Hello World!");
    });
    
    app.listen(3000, () => console.log(`App Started`));

    Code trên khởi tạo Morgan bằng định dạng dev. 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 logging 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.

  • 0

    3. Pino

    Pino

    Pino là gói ghi nhật ký nhẹ và phổ biến dành cho các ứng dụng Node.js với hiệu suất nhanh và ít tốn chi phí.

    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à dữ liệu.

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

    npm install pino-http

    Code bên dưới 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("/", (req, res) => {
      pino(req, res) // logs request and response
      req.log.info('root route') // logs additional info
      res.send("Hello World!");
    });
    
    app.listen(3000, () => console.log(`App Started`));

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

  • Hi vọng bài viết có lựa chọn phù hợp với bạn!

Thứ Hai, 20/03/2023 11:42
31 👨 435
0 Bình luận
Sắp xếp theo