Source code for simstack.models.log_entry_model
from datetime import datetime
from enum import Enum
from typing import Optional
from odmantic import Model, Field
from simstack.models import Parameters
[docs]
class LogLevel(str, Enum):
DEBUG = "DEBUG"
INFO = "INFO"
WARNING = "WARNING"
ERROR = "ERROR"
CRITICAL = "CRITICAL"
[docs]
class LogEntry(Model):
timestamp: datetime = Field(default_factory=datetime.utcnow)
level: LogLevel # Use enum for validation
logger_name: str
message: str
module: str
function: str
line: int
task_id: Optional[str] = None
resource: Optional[str] = None
thread_name: Optional[str] = None
process_name: Optional[str] = None
exception_type: Optional[str] = None
exception_message: Optional[str] = None
exception_traceback: Optional[str] = None
# extra_data: Dict[str, Any] = Field(default_factory=dict)
parameters: Optional[Parameters] = None # If Parameters is related to LogEntry
# Replace Config class with model_config
model_config = {"collection": "logs"}