在Node.js中,可通过中间件和日志库实现请求跟踪,以下是具体方法:
使用Express中间件(如morgan)
npm install morganconst morgan = require('morgan');
app.use(morgan(':method :url :status :response-time ms')); // 自定义格式
stream参数将日志写入文件。结合日志库(如winston)
npm install winstonconst winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [new winston.transports.File({ filename: 'logs/request.log' })]
});
app.use((req, res, next) => {
logger.info({ method: req.method, url: req.url, traceId: req.headers['x-trace-id'] });
next();
});
请求链路追踪(TraceID)
const { v4: uuidv4 } = require('uuid');
app.use((req, res, next) => {
req.traceId = uuidv4(); // 添加到请求头或上下文
next();
});
参考来源: