Skip to main content

Python SDK for sending logs to Strayl Cortyx

Project description

Strayl Logging SDK для Python

Минималистичный Python SDK для отправки логов в Strayl Cortyx через API ключи.

📖 Новичок? Начните с QUICKSTART.md — пошаговая инструкция с нуля.

Установка

pip install strayl-logging

Или для локальной разработки:

cd SDK/strayl_logging
pip install -e .

Быстрый старт

from strayl_logging import StraylLogger

# Инициализация логгера
logger = StraylLogger(api_key="st_ваш_ключ")

# Отправка логов
logger.info("Server started", {"port": 8000})
logger.warn("High memory usage", {"usage": "85%"})
logger.error("Database connection failed", {"retry": True})
logger.debug("Processing request", {"request_id": "abc123"})

Получение API ключа

  1. Зарегистрируйтесь на strayl.dev
  2. Перейдите в Dashboard
  3. Откройте вкладку API
  4. Создайте новый API ключ
  5. Скопируйте ключ (формат st_...)

Использование

Базовое использование

from strayl_logging import StraylLogger

logger = StraylLogger(api_key="st_ваш_ключ")
logger.info("Application started")

С контекстом по умолчанию

logger = StraylLogger(
    api_key="st_ваш_ключ",
    default_context={
        "service": "my-service",
        "version": "1.0.0",
        "environment": "production",
    },
)

logger.info("User logged in", {"user_id": 123})
# Отправит: {"service": "my-service", "version": "1.0.0", "environment": "production", "user_id": 123}

Синхронный режим

По умолчанию логи отправляются асинхронно в отдельном потоке. Для синхронной отправки:

logger = StraylLogger(
    api_key="st_ваш_ключ",
    async_mode=False,  # Синхронная отправка
)

Кастомный эндпоинт

logger = StraylLogger(
    api_key="st_ваш_ключ",
    endpoint="https://custom-endpoint.com/log",
)

Настройка таймаута

logger = StraylLogger(
    api_key="st_ваш_ключ",
    timeout=5.0,  # 5 секунд (по умолчанию 3.0)
)

API Reference

StraylLogger

Параметры конструктора

  • api_key (str, обязательный): API ключ для аутентификации (формат st_...)
  • endpoint (str, опциональный): URL эндпоинта (по умолчанию используется production endpoint)
  • default_context (dict, опциональный): Контекст по умолчанию для всех логов
  • timeout (float, опциональный): Таймаут запроса в секундах (по умолчанию 3.0)
  • async_mode (bool, опциональный): Асинхронная отправка в отдельном потоке (по умолчанию True)

Методы

  • info(message, context=None) - Отправка информационного лога
  • warn(message, context=None) - Отправка предупреждения
  • error(message, context=None) - Отправка ошибки
  • debug(message, context=None) - Отправка отладочного лога
  • log(level, message, context=None) - Отправка лога с указанным уровнем

Уровни логов

  • info - Информационные сообщения
  • warn - Предупреждения
  • error - Ошибки
  • debug - Отладочная информация

Безопасность

  • API ключи передаются через заголовок Authorization: Bearer <api_key>
  • Все запросы выполняются по HTTPS
  • Ошибки отправки не ломают приложение (проглатываются молча)
  • Логи не содержат чувствительных данных (пароли, токены и т.д.)

Особенности

  • Неблокирующий: По умолчанию логи отправляются асинхронно
  • Безопасный: Ошибки отправки не ломают приложение
  • Минималистичный: Один класс, простой API
  • Типизированный: Полная поддержка type hints

Примеры использования

В веб-приложении

from flask import Flask
from strayl_logging import StraylLogger

app = Flask(__name__)
logger = StraylLogger(
    api_key=os.getenv("STRAYL_API_KEY"),
    default_context={"service": "web-app"},
)

@app.route("/")
def index():
    logger.info("Homepage accessed")
    return "Hello World"

@app.errorhandler(500)
def handle_error(e):
    logger.error("Internal server error", {"error": str(e)})
    return "Error", 500

В фоновой задаче

from strayl_logging import StraylLogger

logger = StraylLogger(api_key="st_ваш_ключ")

def process_task(task_id):
    try:
        logger.info("Task started", {"task_id": task_id})
        # ... обработка задачи ...
        logger.info("Task completed", {"task_id": task_id})
    except Exception as e:
        logger.error("Task failed", {"task_id": task_id, "error": str(e)})

Требования

  • Python >= 3.8
  • requests >= 2.28.0

Лицензия

MIT

Поддержка

Разработка

# Клонировать репозиторий
git clone https://github.com/AlemzhanJ/strayl-sdk-py.git
cd strayl-sdk-py

# Установить в режиме разработки
pip install -e .

# Запустить тесты
python test.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strayl_logging-0.1.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strayl_logging-0.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file strayl_logging-0.1.0.tar.gz.

File metadata

  • Download URL: strayl_logging-0.1.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for strayl_logging-0.1.0.tar.gz
Algorithm Hash digest
SHA256 429bc6373834dbc2c3a729c284f5defb8182f363fb7d7f4d071fe13a77f6010f
MD5 d4978d91a5e75bdd5b8b975cab2e3548
BLAKE2b-256 069003bdfd60429ed2e7074c6bad2488be11d5cc47844e9b8cf287f85b09d863

See more details on using hashes here.

File details

Details for the file strayl_logging-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: strayl_logging-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for strayl_logging-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ca6a738fb4ae7616ad62632b3bcb3ebe2ce451d3f88dd2295250189aff6880e
MD5 94f8ae495d3f09aeaa8d97ab9eb41d60
BLAKE2b-256 7b517531f276e53aeb809ea005c5b1f50a3b554128cf9cba9918d8dd93820f24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page