在Node.js中,请求处理时间通常包含在日志消息中,具体格式可能因使用的日志库和配置而异。以下是一些常见的方法来查看请求处理时间:
const start = Date.now();
// 处理请求的代码
const end = Date.now();
const requestTime = end - start;
console.log(`Request processed in ${requestTime} ms`);
或者,如果你使用的是一个自定义的日志函数,可以在日志消息中包含处理时间:
function createLogger() {
return async (ctx, next) => {
const startTime = Date.now();
const requestLog = `[${moment().format('YYYY-MM-DD HH:mm:ss')}] Request details: ${JSON.stringify(ctx.request)}`;
if (ctx.request.body) {
requestLog += `, request body: ${JSON.stringify(ctx.request.body)}`;
}
console.log(requestLog);
const response = await next();
const endTime = Date.now();
const responseTime = endTime - startTime;
console.log(`Response processed in ${responseTime} ms`);
return response;
};
}
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `[${timestamp}] ${level}: ${message}`;
})
),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
app.use(createLogger());
app.use(router.routes()).use(router.allowedMethods());
在上面的配置中,timestamp
格式化函数会自动包含时间戳,你可以根据需要调整日志格式以包含请求处理时间。
请注意,具体的实现方法可能会根据你的应用程序架构和所选的日志库有所不同。在生产环境中,建议使用成熟的日志管理解决方案来自动化日志的收集、分析和可视化。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu Node.js日志中的请求处理时间如何分析