Ghi nhật ký là một phần rất cần thiết trong bất kỳ ứng dụng nào cho dù nó được tạo bằng Node.js hay bất kỳ ngôn ngữ lập trình nào khác. Ghi nhật ký giúp chúng tôi phát hiện các hành vi kỳ lạ của một ứng dụng cùng với các lỗi và ngoại lệ trong thời gian thực. Người ta chắc chắn nên đặt các bản ghi logic trong ứng dụng của họ. Những nhật ký này giúp người dùng xác định bất kỳ lỗi nào và giải quyết nó trên cơ sở khẩn cấp.
Có 5 cấp độ nhật ký khác nhau hiện tại với người dùng. Các cấp độ nhật ký này được sử dụng để xác định các loại nhật ký khác nhau và giúp người dùng xác định các tình huống khác nhau. Các cấp độ nhật ký phải được định cấu hình cẩn thận để đạt được hiệu quả tốt nhất từ các nhật ký này -
-
lỗi
-
cảnh báo
-
thông tin
-
dài dòng
-
gỡ lỗi
Phần mềm trung gian
Bạn có thể đặt phần mềm trung gian này trong đường dẫn yêu cầu để bạn có thể trực tiếp sử dụng sức mạnh của mô-đun gỡ lỗi để in nhật ký. Ưu điểm tốt nhất của mô-đun gỡ lỗi là hầu như tất cả các mô-đun đều sử dụng gỡ lỗi để in nhật ký. Bạn có thể sử dụng mô-đun gỡ lỗi để in nhật ký và lỗi.
Phần mềm trung gian này chủ yếu được sử dụng để hoạt động như một đường ống trung gian - bạn có thể chuyển các bản ghi trong đường ống này sẽ được in trong tệp nhật ký. Các yêu cầu và phản hồi cũng được chuyển qua phần mềm trung gian này cho mục đích ghi nhật ký. Nó rất có lợi trong một ứng dụng Express. Việc thiết lập phần mềm trung gian rất dễ dàng và có thể được thực hiện trong bất kỳ khuôn khổ nào đang được sử dụng.
Định cấu hình tệp cho phần mềm trung gian
ứng dụng
const app = express() const logMiddleware = require('my-logging-middleware') app.use(logMiddleware)
bộ định tuyến
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)
lỗi
const app = express(); const errorLoggingMiddleware = require('my-error-logging-middleware') app.use(errorLoggingMiddleware)
Gói Winston
Bạn cũng có thể sử dụng gói wonton cho mục đích ghi nhật ký. Nó cũng cung cấp các cấp nhật ký khác nhau, các truy vấn cũng như một trình biên dịch.
ứng dụng
Hàmconst app = express() const winstonPackage = require('winston') const consoleTransport = new winstonPackage.transports.Console() const myWinstonOptions = { transports: [consoleTransport] } const logger = new winstonPackage.createLogger(myWinstonOptions) function logRequest(req, res, next) { logger.info(req.url) next() } app.use(logRequest) function logError(err, req, res, next) { logger.error(err) next() } app.use(logError)