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
-
Express Framework trong Node.js
-
Hàm ROUND trong SQL Server
-
Lập trình hướng đối tượng trong Python
-
Cách sử dụng Visual Intensity trong Adobe Firefly để có hình ảnh chi tiết hơn
-
Thanh điều hướng - Navigation Bar trong CSS
-
Cách khởi động và dừng các dịch vụ trong MS SQL Server
-
RESTful API trong Node.js
-
Đối tượng Request trong Node.js
-
Cách giãn dòng trong Word 2016, 2019, 2010, 2007, 2013
Cũ vẫn chất
-
200+biệt danh cho người yêu hay và hài hước
Hôm qua 5 -
Cách viết số mũ trong Excel, viết chỉ số trên, chỉ số dưới trong Excel
Hôm qua -
Black Friday là gì? Black Friday 2023 vào ngày nào?
Hôm qua -
Cách vô hiệu hóa BitLocker trong Windows 10
Hôm qua -
Khắc phục lỗi mạng WiFi không hiển thị trên Windows 10
Hôm qua -
Cách sửa file MP4 bị hỏng với thủ thuật đơn giản
Hôm qua -
5 cách tắt Update Windows 11, ngừng cập nhật Win 11
Hôm qua 14 -
Pantheon DTCL 7.5: Lên đồ, đội hình mạnh
Hôm qua -
Cách khởi động và dừng các dịch vụ trong MS SQL Server
Hôm qua -
Cách ẩn tin nhắn Telegram không cần xóa
Hôm qua