32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
"""日志相关模型"""
|
|
from datetime import datetime
|
|
from sqlalchemy import Column, BigInteger, String, Integer, Text, JSON, Enum, TIMESTAMP
|
|
from ..database import Base
|
|
|
|
|
|
class PlatformLog(Base):
|
|
"""统一日志表"""
|
|
__tablename__ = "platform_logs"
|
|
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
|
trace_id = Column(String(36))
|
|
tenant_id = Column(BigInteger)
|
|
user_id = Column(BigInteger)
|
|
app_code = Column(String(50), nullable=False)
|
|
log_type = Column(Enum('request', 'error', 'app', 'biz', 'audit'), nullable=False)
|
|
level = Column(Enum('debug', 'info', 'warn', 'error', 'fatal'), default='info')
|
|
category = Column(String(100))
|
|
message = Column(Text, nullable=False)
|
|
context = Column(JSON)
|
|
method = Column(String(10))
|
|
path = Column(String(500))
|
|
status_code = Column(Integer)
|
|
duration_ms = Column(Integer)
|
|
error_type = Column(String(100))
|
|
stack_trace = Column(Text)
|
|
action = Column(String(100))
|
|
target_type = Column(String(50))
|
|
target_id = Column(String(100))
|
|
log_time = Column(TIMESTAMP, nullable=False)
|
|
created_at = Column(TIMESTAMP, default=datetime.now)
|