1.9 KiB
1.9 KiB
Operation Logger API Documentation
Overview
The OperationLogger class provides functionality for recording and managing operation logs, including:
- Logging API operations
- Querying operation logs with filters
- Cleaning up old logs
Class Methods
log_operation(user_id, operation_type, endpoint, parameters=None, status="SUCCESS")
Records an API operation in the database.
Parameters:
user_id(int): ID of the user performing the operationoperation_type(str): Type of operation (e.g., "CREATE", "UPDATE")endpoint(str): API endpoint accessedparameters(str, optional): Operation parameters in string formatstatus(str): Operation status (default: "SUCCESS")
Returns:
- int: ID of the created log record
Example:
logger.log_operation(123, "LOGIN", "/api/auth/login", "username=test", "SUCCESS")
get_operations(user_id=None, start_time=None, end_time=None, limit=100)
Queries operation logs with optional filters.
Parameters:
user_id(int, optional): Filter by user IDstart_time(datetime, optional): Earliest log timeend_time(datetime, optional): Latest log timelimit(int): Maximum number of logs to return (default: 100)
Returns:
- List of log records with fields:
- id
- user_id
- operation_type
- endpoint
- parameters
- status
- created_at
clean_old_logs(days=30)
Deletes logs older than specified number of days.
Parameters:
days(int): Delete logs older than this many days (default: 30)
Returns:
- int: Number of logs deleted
Error Handling
- Raises
OperationLogErrorfor all failures - Detailed error logging through module logger
Best Practices
- Log all critical operations for audit trail
- Regularly clean old logs to maintain performance
- Use appropriate status values ("SUCCESS", "FAILED", etc.)
- Include relevant parameters for debugging