Skip to main content

SDK oficial para envio de logs ao LogCenter

Project description

LogCenter SDK (Python)

SDK oficial para envio de logs ao LogCenter, projetado para ser utilizado como biblioteca em qualquer aplicação da empresa, sem replicação de código e com foco em resiliência, padronização e observabilidade.


✨ Principais Características

  • Envio de logs estruturados para o LogCenter
  • Compatível com o LogCenter V2
  • Offline-first: logs são armazenados localmente em caso de falha de rede
  • Retry automático com backoff exponencial
  • Envio em lote (batch)
  • Totalmente compatível com os filtros do /dash
  • Pode rodar em background (thread dedicada)
  • Uso simples, sem acoplamento com frameworks

📦 Instalação

pip install logcenter-sdk

🔧 Configuração Básica

from logcenter_sdk import LogSender, LogSenderConfigconfig = LogSenderConfig(    log_api="https://logcenter.suaempresa.com",    project_id="69374094b758aa497f59cf1b",    upload_delay=10,)log_sender = LogSender(config)

Também é possível configurar via variáveis de ambiente:

export LOG_API=https://logcenter.suaempresa.comexport PROJECT_ID=69374094b758aa497f59cf1b
from logcenter_sdk import create_log_sender_from_envlog_sender = create_log_sender_from_env()

🧾 Contrato de Dados (LogCreate)

O SDK envia logs compatíveis com o schema oficial da API:

{  "project_id": "string (Mongo ObjectId)",  "status": "string",  "level": "INFO | WARN | ERROR | ...",  "message": "string",  "timestamp": "ISO-8601 (opcional)",  "tags": ["string"],  "data": { "any": "value" },  "request_id": "string | null"}

Regras Importantes

  • timestamp é top-level
  • Se timestamp não for enviado, o servidor preencherá automaticamente
  • Campos extras são ignorados pela API
  • O SDK sempre envia dados compatíveis com esse contrato

🚀 Enviando Logs

Exemplo básico

log_sender.log(    message="Usuário logado com sucesso",    level="INFO",    tags=["auth", "backend"],    data={        "user_id": 123,        "campaign": "BlackFriday"    },    request={"id": "req-abc-123"})

Enviando log com timestamp explícito

log_sender.log(    message="Evento com timestamp exato",    level="INFO",    timestamp="2025-12-08T21:16:12Z",    tags=["special", "equality-test"],    data={"marker": "TS_EQ"})

Isso permite filtros exatos como ?timestamp=2025-12-08T21:16:12Z no dashboard.


🌐 Modo Offline & Resiliência

O SDK é offline-first por design.

Como funciona

  • Todo log é salvo localmente antes do envio

  • Se a API estiver indisponível:

    • o log permanece no arquivo local
    • o SDK tenta reenviar automaticamente
  • Quando a conexão retorna:

    • os logs pendentes são reenviados em lote

Estrutura de arquivos

logs/├── datalogs.csv        # logs pendentes└── datalogs_backup.csv # logs enviados com sucesso

Nenhum log é perdido.


🔁 Envio em Background

O SDK pode rodar um worker em background para envio contínuo:

log_sender.start_background_sender()

Para parar:

log_sender.stop_background_sender()

Também pode ser usado como context manager:

with log_sender:    log_sender.log("Aplicação iniciada")

📊 Compatibilidade com Dashboard (/dash)

Todos os logs enviados pelo SDK são 100% compatíveis com os filtros do dashboard.

Exemplos de filtros suportados

?level=ERROR?level__in=INFO,ERROR?message__regex=timeout|cache?data.campaign=Christmas?data.region=BR

Filtros por data

?timestamp__gte=2025-12-08T20:00:00Z&timestamp__lte=2025-12-08T22:00:00Z

Igualdade exata de timestamp

?timestamp=2025-12-08T21:16:12Z

⚠️ Atenção (Campos Legados)

Campos antigos não devem mais ser usados:

❌ Antigo

✅ Atual

project

project_id

request

request_id

timestamp dentro de data

timestamp top-level


📈 Estatísticas do SDK

stats = log_sender.get_stats()

Exemplo de retorno:

{  "pending_logs": 3,  "running": true,  "config": {    "project_id": "...",    "upload_delay": 10,    "batch_size": 100,    "enable_async": true  }}

🧪 Ambientes Indicados

  • Backend services
  • Workers
  • APIs
  • Jobs batch
  • Scripts de automação
  • Aplicações Flask / FastAPI / Django

📌 Versão

0.1.6-dev

Versão alinhada com LogCenter V2, filtros avançados e dashboard unificado.


🛣️ Roadmap (não implementado ainda)

  • Integração opcional com structlog
  • Buffer
  • Compressão de batches
  • SDK JS / Node.js

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

logcenter_sdk-0.1.0.dev0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

logcenter_sdk-0.1.0.dev0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file logcenter_sdk-0.1.0.dev0.tar.gz.

File metadata

  • Download URL: logcenter_sdk-0.1.0.dev0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for logcenter_sdk-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 adaa32820d87ac539e966ebc472ec6f084e03a78c5626d7d24159af8588127f2
MD5 69e9045108fd7af067e8574741f64edd
BLAKE2b-256 d6cd36555c23316174cd2af61cc69771fa30cfa238713ebb3c8ea01bb784b59e

See more details on using hashes here.

File details

Details for the file logcenter_sdk-0.1.0.dev0-py3-none-any.whl.

File metadata

File hashes

Hashes for logcenter_sdk-0.1.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0e243ca14991e419adaadae879ca16a1bc196303ded81e5d552bebd0a8b8119
MD5 fd2ca0d4acfae4b9a7820d9fa4564211
BLAKE2b-256 55a0f745275c52bb0c0f6fb1299dcf1f6b5626f7912a43a95e845c420032bed5

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