78 lines
2.9 KiB
HTML
78 lines
2.9 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}调用日志{% endblock %}
|
|
{% block content %}
|
|
<h3 class="mb-3">API 调用日志</h3>
|
|
<form class="row g-2 mb-3" method="get">
|
|
<div class="col-md-3">
|
|
{{ form.api_id.label(class="form-label") }}
|
|
{{ form.api_id(class="form-select") }}
|
|
</div>
|
|
<div class="col-md-2">
|
|
{{ form.success.label(class="form-label") }}
|
|
{{ form.success(class="form-select") }}
|
|
</div>
|
|
<div class="col-md-2">
|
|
{{ form.start_date.label(class="form-label") }}
|
|
{{ form.start_date(class="form-control", placeholder="YYYY-MM-DD") }}
|
|
</div>
|
|
<div class="col-md-2">
|
|
{{ form.end_date.label(class="form-label") }}
|
|
{{ form.end_date(class="form-control", placeholder="YYYY-MM-DD") }}
|
|
</div>
|
|
<div class="col-md-2 align-self-end">
|
|
<button class="btn btn-outline-secondary" type="submit">筛选</button>
|
|
</div>
|
|
</form>
|
|
<table class="table table-striped table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>API</th>
|
|
<th>请求时间</th>
|
|
<th>状态</th>
|
|
<th>HTTP</th>
|
|
<th>耗时(ms)</th>
|
|
<th>错误</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for log in logs %}
|
|
<tr>
|
|
<td>{{ log.api.name }}</td>
|
|
<td>{{ log.request_time }}</td>
|
|
<td>
|
|
{% if log.success %}
|
|
<span class="badge bg-success">成功</span>
|
|
{% else %}
|
|
<span class="badge bg-danger">失败</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ log.http_status_code or '-' }}</td>
|
|
<td>{{ log.duration_ms or '-' }}</td>
|
|
<td class="text-truncate" style="max-width: 200px;">{{ log.error_message or '' }}</td>
|
|
<td><a class="btn btn-sm btn-outline-primary" href="{{ url_for('logs.log_detail', log_id=log.id) }}">详情</a></td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="7" class="text-center">暂无日志。</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% if pagination.pages > 1 %}
|
|
<nav>
|
|
<ul class="pagination">
|
|
{% if pagination.has_prev %}
|
|
<li class="page-item"><a class="page-link" href="{{ url_for('logs.list_logs', page=pagination.prev_num, per_page=pagination.per_page, **request.args) }}">上一页</a></li>
|
|
{% else %}
|
|
<li class="page-item disabled"><span class="page-link">上一页</span></li>
|
|
{% endif %}
|
|
<li class="page-item disabled"><span class="page-link">第 {{ pagination.page }} / {{ pagination.pages }} 页</span></li>
|
|
{% if pagination.has_next %}
|
|
<li class="page-item"><a class="page-link" href="{{ url_for('logs.list_logs', page=pagination.next_num, per_page=pagination.per_page, **request.args) }}">下一页</a></li>
|
|
{% else %}
|
|
<li class="page-item disabled"><span class="page-link">下一页</span></li>
|
|
{% endif %}
|
|
</ul>
|
|
</nav>
|
|
{% endif %}
|
|
{% endblock %}
|