要解析Node.js日志中的请求信息,你可以使用一些流行的日志分析工具,如Winston、Morgan等。这里以Morgan为例,介绍如何解析Node.js日志中的请求信息。
npm install morgan
const express = require('express');
const morgan = require('morgan');
const app = express();
// 设置日志格式
morgan.token('method', (req, res) => req.method);
morgan.token('url', (req, res) => req.url);
morgan.token('status', (req, res) => res.statusCode);
morgan.token('response-time', (req, res) => res.responseTime);
app.use(morgan(':method :url :status :response-time ms - :res[content-length]'));
// 其他路由和中间件
// ...
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
这样,每次有请求进来时,Morgan都会在控制台输出类似以下的日志:
GET /index.html 200 123ms - 6.54kb
POST /api/data 201 234ms - 1.23kb
function parseMorganLog(logEntry) {
const tokens = logEntry.split(' ');
const method = tokens[0];
const url = tokens[1];
const status = parseInt(tokens[2], 10);
const responseTime = parseFloat(tokens[3].replace('ms', ''));
const contentLength = tokens[4];
return {
method,
url,
status,
responseTime,
contentLength
};
}
const logEntry = 'GET /index.html 200 123ms - 6.54kb';
const parsedLog = parseMorganLog(logEntry);
console.log(parsedLog);
这将输出:
{
method: 'GET',
url: '/index.html',
status: 200,
responseTime: 123,
contentLength: '- 6.54kb'
}
现在你可以根据需要处理这些解析后的请求信息,例如统计请求量、分析响应时间等。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: pthread_t在linux中的线程调度策略