61 lines
1.5 KiB
TypeScript
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);
|