gongxiangp2/scripts/check-api-logs.ts

61 lines
1.5 KiB
TypeScript

/**
* 检查任务平台 API 调用日志
*/
import { prisma } from '../lib/prisma';
const TASK_NO = 'TASK202601141713525624-01';
async function main() {
console.log('==== 检查任务平台 API 调用日志 ====\n');
// 查询最近的 API 调用日志
const logs = await prisma.apiCallLog.findMany({
where: {
taskNo: TASK_NO,
},
include: {
apiKey: {
select: {
name: true,
},
},
},
orderBy: {
createdAt: 'desc',
},
take: 10,
});
console.log(`找到 ${logs.length} 条日志记录\n`);
logs.forEach((log, index) => {
console.log(`--- 日志 ${index + 1} ---`);
console.log(`时间: ${log.createdAt.toISOString()}`);
console.log(`API Key: ${log.apiKey?.name || 'N/A'}`);
console.log(`端点: ${log.endpoint}`);
console.log(`方法: ${log.method}`);
console.log(`任务号: ${log.taskNo || 'N/A'}`);
console.log(`状态码: ${log.statusCode}`);
console.log(`耗时: ${log.duration}ms`);
console.log(`IP: ${log.ipAddress || 'N/A'}`);
console.log(`User-Agent: ${log.userAgent || 'N/A'}`);
console.log('');
});
// 统计状态码
const statusCounts = logs.reduce((acc, log) => {
acc[log.statusCode] = (acc[log.statusCode] || 0) + 1;
return acc;
}, {} as Record<number, number>);
console.log('状态码统计:');
Object.entries(statusCounts).forEach(([status, count]) => {
console.log(` ${status}: ${count} 次`);
});
await prisma.$disconnect();
}
main().catch(console.error);