- 创建项目核心文件:package.json、vite.config.js、.gitignore - 添加前后端基础依赖和开发工具配置 - 完善OpenSpec模块,包括项目文档和核心能力规格 - 配置ESLint和Prettier代码规范 - 创建基本目录结构 - 实现前端Vue3应用框架和路由 - 添加后端Express服务器和基础路由 - 编写README项目说明文档
2.3 KiB
2.3 KiB
Logging Capability Specification
Overview
This specification defines the logging capability for the BLS Project Console, which allows the system to read log records from Redis queues and display them in the console interface.
Requirements
Requirement: Log Reading from Redis
The system SHALL read log records from a Redis queue.
Scenario: Reading logs from Redis queue
- WHEN the server starts
- THEN it SHALL establish a connection to the Redis queue
- AND it SHALL begin listening for new log records
- AND it SHALL store log records in memory for display
Requirement: Log Display in Console
The system SHALL display log records in a user-friendly format.
Scenario: Displaying logs in the console
- WHEN a log record is received from Redis
- THEN it SHALL be added to the log list in the console
- AND it SHALL display the log timestamp, level, and message
- AND it SHALL support scrolling through historical logs
Requirement: Log Filtering
The system SHALL allow users to filter logs by level and time range.
Scenario: Filtering logs by level
- WHEN the user selects a log level filter
- THEN only logs with the selected level SHALL be displayed
Scenario: Filtering logs by time range
- WHEN the user selects a time range
- THEN only logs within the specified range SHALL be displayed
Requirement: Log Auto-Refresh
The system SHALL automatically refresh logs in real-time.
Scenario: Real-time log updates
- WHEN a new log is added to the Redis queue
- THEN it SHALL be automatically displayed in the console
- AND the console SHALL scroll to the latest log if the user is viewing the end
Data Model
Log Record
{
"id": "string",
"timestamp": "ISO-8601 string",
"level": "string", // e.g., INFO, WARN, ERROR, DEBUG
"message": "string",
"metadata": "object" // optional additional data
}
API Endpoints
GET /api/logs
- Description: Get log records
- Query Parameters:
level: Filter logs by levelstartTime: Filter logs from this timestampendTime: Filter logs up to this timestamplimit: Maximum number of logs to return
- Response: Array of log records
GET /api/logs/live
- Description: Establish a WebSocket connection for real-time log updates
- Response: Continuous stream of log records