feat: 初始化考培练系统项目
- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
60
backend/app/models/system_log.py
Normal file
60
backend/app/models/system_log.py
Normal file
@@ -0,0 +1,60 @@
|
||||
"""
|
||||
系统日志模型
|
||||
用于记录系统操作、错误、安全事件等日志信息
|
||||
"""
|
||||
from datetime import datetime
|
||||
from sqlalchemy import Column, Integer, String, Text, DateTime, Index
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from app.models.base import BaseModel
|
||||
|
||||
|
||||
class SystemLog(BaseModel):
|
||||
"""
|
||||
系统日志模型
|
||||
记录系统各类操作日志
|
||||
"""
|
||||
__tablename__ = "system_logs"
|
||||
|
||||
# 日志级别: debug, info, warning, error
|
||||
level: Mapped[str] = mapped_column(String(20), nullable=False, index=True)
|
||||
|
||||
# 日志类型: system, user, api, error, security
|
||||
type: Mapped[str] = mapped_column(String(50), nullable=False, index=True)
|
||||
|
||||
# 操作用户(可能为空,如系统自动操作)
|
||||
user: Mapped[str] = mapped_column(String(100), nullable=True, index=True)
|
||||
|
||||
# 用户ID(可能为空)
|
||||
user_id: Mapped[int] = mapped_column(Integer, nullable=True, index=True)
|
||||
|
||||
# IP地址
|
||||
ip: Mapped[str] = mapped_column(String(100), nullable=True)
|
||||
|
||||
# 日志消息
|
||||
message: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
|
||||
# User Agent
|
||||
user_agent: Mapped[str] = mapped_column(String(500), nullable=True)
|
||||
|
||||
# 请求路径(API路径)
|
||||
path: Mapped[str] = mapped_column(String(500), nullable=True, index=True)
|
||||
|
||||
# 请求方法
|
||||
method: Mapped[str] = mapped_column(String(10), nullable=True)
|
||||
|
||||
# 额外数据(JSON格式,可存储详细信息)
|
||||
extra_data: Mapped[str] = mapped_column(Text, nullable=True)
|
||||
|
||||
# 创建索引以优化查询性能
|
||||
__table_args__ = (
|
||||
Index('idx_system_logs_created_at', 'created_at'),
|
||||
Index('idx_system_logs_level_type', 'level', 'type'),
|
||||
Index('idx_system_logs_user_created', 'user', 'created_at'),
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return f"<SystemLog(id={self.id}, level={self.level}, type={self.type}, user={self.user})>"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user