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.
- 0
1. Winston
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 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!
Bạn nên đọc
-
Bài tập C++ có giải (code mẫu) về biến, kiểu dữ liệu và toán tử
-
Kiểu dữ liệu trong C/C++
-
Hàm xử lý DATE/TIME trong SQL - Phần 1
-
Đối tượng Response trong Node.js
-
Hàm MID: Hàm lấy chuỗi ký tự trong Excel
-
RESTful API trong Node.js
-
Cách tạo hiệu ứng khi rê chuột qua (hover) bằng CSS
-
Đối tượng Request trong Node.js
-
Khóa ngoại Foreign Key trong SQL Server
Cũ vẫn chất
-
Bitcoin là gì? Tại sao Bitcoin không phải là "tiền ảo"?
Hôm qua -
Tổng hợp cách tạo mật khẩu mạnh và quản lý mật khẩu an toàn nhất
Hôm qua -
15 cách chỉnh độ sáng màn hình máy tính, laptop
Hôm qua -
Tổng hợp câu hỏi Nhanh như chớp mùa 2
Hôm qua -
Cách đổi công cụ tìm kiếm trên Safari
Hôm qua -
Cách xóa Header và Footer trong Word
Hôm qua -
Hướng dẫn chèn link vào nội dung trên Canva
Hôm qua -
Code Alo Chủ Tướng mới nhất 12/2024
Hôm qua -
Hướng dẫn chơi Rung Cây vàng Trúng Cây vàng trên My Viettel
Hôm qua -
Cách sửa lỗi âm thanh trên Windows 10, khắc phục lỗi âm thanh Win 10
Hôm qua