def _should_log_frame(self, frame, src, dst):
        """Determine if a frame should be logged based on filters.

        Args:
            frame: The frame being processed
            src: The source component
            dst: The destination component

        Returns:
            bool: True if the frame should be logged, False otherwise
        """
        # If no filters, log all frames
        if not self.frame_filters:
            return True

        # Check if this frame type is in our filters
        for frame_type, filter_config in self.frame_filters.items():
            if isinstance(frame, frame_type):
                # If filter is None, log all instances of this frame type
                if filter_config is None:
                    return True

                # Otherwise, check the specific filter
                service_type, endpoint = filter_config

                if endpoint == FrameEndpoint.SOURCE:
                    return isinstance(src, service_type)
                elif endpoint == FrameEndpoint.DESTINATION:
                    return isinstance(dst, service_type)

        return False
Determine if a frame should be logged based on filters.

        Args:
            frame: The frame being processed
            src: The source component
            dst: The destination component

        Returns:
            bool: True if the frame should be logged, False otherwise
        
src/pipecat/observers/loggers/debug_log_observer.py