溫馨提示×

Node.js日志中如何追蹤請求

小樊
62
2025-03-05 06:12:24
欄目: 編程語言

在Node.js中,可以使用中間件來追蹤請求。這里以Express框架為例,介紹如何使用morgan中間件來記錄請求日志。

  1. 首先,確保已經安裝了Express和morgan:
npm install express morgan
  1. 在你的Node.js應用中引入Express和morgan:
const express = require('express');
const morgan = require('morgan');
  1. 使用morgan中間件。在你的Express應用中,添加以下代碼:
const app = express();

// 設置日志格式
morgan.token('method', function (req, res) {
  return req.method;
});

morgan.token('url', function (req, res) {
  return req.url;
});

morgan.token('status', function (req, res) {
  return res.statusCode;
});

morgan.token('response-time', function (req, res) {
  return res.get('X-Response-Time');
});

app.use(morgan(':method :url :status :response-time ms - :res[content-length]'));

// 其他路由和中間件
// ...

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

上述代碼中,我們自定義了morgan的日志格式,包括請求方法、URL、狀態碼、響應時間和響應內容長度。你可以根據需要自定義日志格式。

現在,每當有請求進入你的應用時,morgan都會記錄相關信息到控制臺。如果你想將日志記錄到文件中,可以使用morganfile方法:

const fs = require('fs');
const path = require('path');

// 創建日志目錄
const logDir = path.join(__dirname, 'logs');
if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir);
}

// 將日志輸出到文件
app.use(morgan('combined', { stream: { write: message => fs.appendFileSync(path.join(logDir, 'access.log'), message) } }));

這樣,所有的請求日志都會被記錄到logs/access.log文件中。你可以根據需要調整日志文件的路徑和名稱。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女