dify_admin/docs/api/operation_logger.md

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 operation
  • operation_type (str): Type of operation (e.g., "CREATE", "UPDATE")
  • endpoint (str): API endpoint accessed
  • parameters (str, optional): Operation parameters in string format
  • status (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 ID
  • start_time (datetime, optional): Earliest log time
  • end_time (datetime, optional): Latest log time
  • limit (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 OperationLogError for 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