Files
Web_BLS_ProjectConsole/openspec/specs/logging/spec.md
XuJiacheng 5f0fa79606 feat: 初始化前后端Node.js控制台项目基础架构
- 创建项目核心文件:package.json、vite.config.js、.gitignore
- 添加前后端基础依赖和开发工具配置
- 完善OpenSpec模块,包括项目文档和核心能力规格
- 配置ESLint和Prettier代码规范
- 创建基本目录结构
- 实现前端Vue3应用框架和路由
- 添加后端Express服务器和基础路由
- 编写README项目说明文档
2026-01-08 11:46:34 +08:00

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 level
    • startTime: Filter logs from this timestamp
    • endTime: Filter logs up to this timestamp
    • limit: 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