Expand description
运行日志查看页面模块(/admin/logs)。
管理后台「运行日志」页面(/admin/logs,侧边栏「工具」组)。
数据流:筛选变更(级别 chips / target 选择器 / 关键字)→ 变更 filter_key →
LogsStreamPane key-based remount(同 runner.rs 语言切换模式):卸载即
use_drop close EventSource,挂载即重新拉历史(get_logs limit 200)并
重连 SSE /api/logs/stream。SSE 实时行追加到列表尾部并按 id 去重——注意
实时事件 id 恒为 0(未落库无 id,见 backend 契约),故去重只对历史行
(id != 0)生效,实时行到达即追加、绝不参与游标计算。
渲染纯度:render body 无任何副作用;网络 / DOM / EventSource 全部在
use_effect / 事件闭包 / #[cfg(target_arch = "wasm32")] 门控块内。
Re-exports§
pub use Logs_completions::Component::Logs;
Structs§
- LogRow 🔒
- 日志行:entry(历史 id>0 / 实时 id=0)或 gap 分隔提示。
- Logs
Stream 🔒Pane Props - Properties for the
LogsStreamPanecomponent. - Target
Select 🔒Props - Properties for the
TargetSelectcomponent.
Enums§
Constants§
- ALL_
LEVELS 🔒 - 全部可选级别(多选 chips,顺序即展示与服务端白名单顺序)。
- BUFFER_
TRIM 🔒 - 触发上限时一次性裁掉的行数(留缓冲,避免每行都触发 drain)。
- INITIAL_
LIMIT 🔒 - 首屏历史加载条数。 以下常量与 LogRowKind 仅在 wasm32 门控块内构造(SSR 不加载数据), server target 会报 dead_code,按本文件组件同款 cfg_attr 放行。
- MAX_
BUFFER_ 🔒ROWS - 列表缓冲上限(行):超出时丢弃最旧行,保护 DOM 规模。
- OLDER_
PAGE_ 🔒LIMIT - 「加载更早」单次翻页条数。
- STICK_
THRESHOLD_ 🔒PX - 判定「贴底」的阈值(px):距底小于该值时新行自动跟随滚动。
Statics§
- LOG_
STREAM_ 🔒ID - LogsStreamPane 实例计数器(滚动容器 id 跨实例全局唯一,同 FormSelect 模式)。
- TARGET_
SELECT_ 🔒ID - TargetSelect 实例计数器(跨实例全局唯一,同 FormSelect 模式)。
Functions§
- Cleanup
Policy 🔒 - 清理策略子组件:保留天数 + 最大行数,复用共享可折叠设置卡片。
- Logs
- 运行日志页面:页头(状态/跟随/导出)+ 筛选栏 + 清理策略 + 实时日志流。
- Logs
Stream 🔒Pane - 实时日志流面板:历史加载 + SSE 追加 + 向上翻页 + 滚动跟随。
- Target
Select 🔒 - target 筛选选择器:触发器 + 下拉列表面板。
- level_
badge_ 🔒class - 级别 badge 配色(Catppuccin 语义色,沿用 StatusBadge 色板惯例)。