transfer from monorepo
This commit is contained in:
65
worker/orca-agent/src/server/models/Log.py
Normal file
65
worker/orca-agent/src/server/models/Log.py
Normal file
@ -0,0 +1,65 @@
|
||||
"""Database model for logging."""
|
||||
|
||||
from datetime import datetime
|
||||
from prometheus_swarm.database import get_db
|
||||
|
||||
|
||||
def init_logs_table():
|
||||
"""Initialize the logs table if it doesn't exist."""
|
||||
# Not needed - handled by SQLModel
|
||||
pass
|
||||
|
||||
|
||||
def save_log(
|
||||
level: str,
|
||||
message: str,
|
||||
module: str = None,
|
||||
function: str = None,
|
||||
path: str = None,
|
||||
line_no: int = None,
|
||||
exception: str = None,
|
||||
stack_trace: str = None,
|
||||
request_id: str = None,
|
||||
additional_data: str = None,
|
||||
) -> bool:
|
||||
"""
|
||||
Save a log entry to the database.
|
||||
|
||||
Args:
|
||||
level: Log level (ERROR, WARNING, INFO, etc)
|
||||
message: Log message
|
||||
module: Module name where log was generated
|
||||
function: Function name where log was generated
|
||||
path: File path where log was generated
|
||||
line_no: Line number where log was generated
|
||||
exception: Exception type if any
|
||||
stack_trace: Stack trace if any
|
||||
request_id: Request ID if available
|
||||
additional_data: Any additional JSON-serializable data
|
||||
|
||||
Returns:
|
||||
bool: True if log was saved successfully
|
||||
"""
|
||||
try:
|
||||
db = get_db()
|
||||
from prometheus_swarm.database import Log
|
||||
|
||||
log = Log(
|
||||
timestamp=datetime.utcnow(),
|
||||
level=level,
|
||||
message=message,
|
||||
module=module,
|
||||
function=function,
|
||||
path=path,
|
||||
line_no=line_no,
|
||||
exception=exception,
|
||||
stack_trace=stack_trace,
|
||||
request_id=request_id,
|
||||
additional_data=additional_data,
|
||||
)
|
||||
db.add(log)
|
||||
db.commit()
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Failed to save log to database: {e}") # Fallback logging
|
||||
return False
|
Reference in New Issue
Block a user