У меня есть следующий класс (вынесен в отдельный файл sms.py):
import requests
import time


class SmsActivateAPI:
    BASE_URL = 'https://sms-activate.guru/stubs/handler_api.php'

    def __init__(self, api_key):
        self.api_key = api_key

    def get_number(self, service='ya'):
        params = {
            'api_key': self.api_key,
            'action': 'getNumber',
            'service': service,
            'country': 0,
            'operator': "megafon",
            'maxPrice': 10
        }
        response = requests.get(self.BASE_URL, params=params)
        if "ACCESS_NUMBER" in response.text:
            _, id, number = response.text.split(':')
            return {'id': id, 'number': number}
        else:
            raise Exception(f"Ошибка получения номера: {response.text}")

    def wait_for_sms(self, id, timeout=120, interval=5):
        start_time = time.time()
        while time.time() - start_time < timeout:
            params = {
                'api_key': self.api_key,
                'action': 'getStatus',
                'id': id
            }
            response = requests.get(self.BASE_URL, params=params)
            if 'STATUS_OK' in response.text:
                _, code = response.text.split(':')
                return code
            elif 'STATUS_WAIT_CODE' in response.text:
                print("Ожидание СМС...")
            elif 'STATUS_WAIT_RETRY' in response.text:
                print("Ожидание СМС...")
            elif 'STATUS_CANCEL' in response.text:
                raise Exception("Номер был отменен.")
            else:
                print(f"Текущий статус: {response.text}")
            time.sleep(interval)

        self.cancel_number(id)
        raise TimeoutError("СМС не пришла в течение времени ожидания. Номер отменен.")

    def set_status_more(self, id):
        params = {
            'api_key': self.api_key,
            'action': 'setStatus',
            'status': 3,
            'id': id
        }
        response = requests.get(self.BASE_URL, params=params)

        if response.text == 'ACCESS_READY':
            return True
        elif response.text == 'ACCESS_RETRY_GET':
            print("Ожидание новой СМС (ACCESS_RETRY_GET).")
            return True
        else:
            raise Exception(f"Ошибка изменения статуса: {response.text}")

    def cancel_number(self, id):
        max_retries = 3
        for attempt in range(max_retries):
            params = {
                'api_key': self.api_key,
                'action': 'setStatus',
                'status': -1,
                'id': id
            }
            response = requests.get(self.BASE_URL, params=params)
            if response.text == 'ACCESS_CANCEL':
                print("Номер успешно отменен.")
                return True
            elif "EARLY_CANCEL_DENIED" in response.text:
                if attempt < max_retries - 1:
                    print("Ошибка: номер нельзя отменить слишком рано. Ожидание 120 секунд перед повторной попыткой...")
                    time.sleep(120)
                else:
                    print("Принудительное завершение задачи после 3 попыток отмены.")
                    break
            else:
                raise Exception(f"Ошибка отмены номера: {response.text}")

        return False


Все логгирование в моем коде выглядит так:
Поток ThreadPoolExecutor-0_0: Проверка номера телефона успешна.
Поток ThreadPoolExecutor-0_0: POST-запрос на подтверждение кода успешно отправлен.
Поток ThreadPoolExecutor-0_0: POST-запрос на подтверждение кода успешен.

Я бы хотел, чтобы эти сообщения тоже писались с потоком. Как это сделать?