Skip to main content

📚 SmartLogs - Logger Inteligente para Projetos Python

SmartLogs é um pacote robusto e flexível para logging em Python. Com suporte a logs coloridos no terminal, exportação para arquivos, integração com Slack e Telegram, ele foi projetado para simplificar o gerenciamento de logs em qualquer projeto Python.


✨ Funcionalidades Principais

  • ✅ Logs coloridos no terminal para melhor visualização.
  • 📝 Registro automático de logs em arquivos.
  • 🔔 Integração com Slack e Telegram para alertas.
  • ⚡ Suporte a níveis de log: DEBUG, INFO, WARNING, ERROR, CRITICAL.
  • 📊 Customização avançada via variáveis de ambiente.
  • 🛠 Compatível com frameworks como Django, Flask e FastAPI.
  • 🔍 Recursos avançados de debug para desenvolvimento e troubleshooting.

⚡ Instalação

Instale o SmartLogs diretamente do PyPI:

pip install SmartLogs

💡 Requisitos: Python 3.6 ou superior.


🚀 Como Usar

✅ Logging Simples

from SmartLogs.logger import SmartLogger

logger = SmartLogger()
logger.info("Sistema inicializado com sucesso!")
logger.warning("Atenção! Limite de requisições atingido.")
logger.error("Erro crítico detectado.")

📝 Logs em Arquivo

logger = SmartLogger(log_file="logs.txt", level="DEBUG")
logger.debug("Esta mensagem será registrada no arquivo logs.txt")

🔔 Integração com Slack

import os
os.environ["SMARTLOGS_ENABLE_SLACK"] = "True"
os.environ["SMARTLOGS_SLACK_WEBHOOK"] = "https://hooks.slack.com/services/..."
logger.info("Alerta enviado para Slack!")

📲 Integração com Telegram

os.environ["SMARTLOGS_ENABLE_TELEGRAM"] = "True"
os.environ["SMARTLOGS_TELEGRAM_BOT_TOKEN"] = "SEU_BOT_TOKEN"
os.environ["SMARTLOGS_TELEGRAM_CHAT_ID"] = "SEU_CHAT_ID"
logger.critical("Erro grave! Notificando via Telegram.")

🔍 Recursos de Debug

from SmartLogs.debug import DebugLogger

# Inicializa o logger de debug
debug_logger = DebugLogger(log_file="debug.log")

# Log com stack trace
def funcao_problema():
    debug_logger.debug_with_stack("Erro encontrado aqui!")

# Log de variáveis de ambiente
debug_logger.log_environment_variables(["PATH", "PYTHONPATH"])

# Profiling de função
@debug_logger.profile
def funcao_lenta():
    time.sleep(1)
    return "concluído"

# Inspeção de variáveis
variaveis = {"x": 10, "y": 20}
debug_logger.inspect_variables(locals())

Novos Casos de Uso: Formatação Avançada

Formatação JSON

from SmartLogs.formatter import JSONFormatter
from datetime import datetime

formatter = JSONFormatter()
print(formatter.format("Mensagem de log", "INFO", datetime.now()))

Formatação XML

from SmartLogs.formatter import XMLFormatter
from datetime import datetime

formatter = XMLFormatter()
print(formatter.format("Mensagem de log", "ERROR", datetime.now()))

Formatação YAML

from SmartLogs.formatter import YAMLFormatter
from datetime import datetime

formatter = YAMLFormatter()
print(formatter.format("Mensagem de log", "WARNING", datetime.now()))

Formatação em Tabela

from SmartLogs.formatter import TableFormatter
from datetime import datetime

formatter = TableFormatter()
print(formatter.format("Mensagem de log", "DEBUG", datetime.now()))

Formatação com Template Personalizado

from SmartLogs.formatter import TemplateFormatter
from datetime import datetime

template = "[{timestamp}] {level}: {message}"
formatter = TemplateFormatter(template)
print(formatter.format("Mensagem de log", "INFO", datetime.now()))

Formatação com Estilos Personalizados (cor, negrito, itálico)

from SmartLogs.formatter import SmartFormatter
from datetime import datetime

formatter = SmartFormatter(
    styles={
        "INFO": {"color": "green", "bold": True},
        "ERROR": {"color": "red", "italic": True}
    }
)
print(formatter.format("Mensagem de log", "INFO", datetime.now()))
print(formatter.format("Mensagem de log", "ERROR", datetime.now()))

🏃 Executando Testes

pytest tests/ --maxfail=1 --disable-warnings -v

📈 Para gerar relatório de cobertura:

pytest --cov=SmartLogs --cov-report=html

🏗 Estrutura do Projeto

SmartLogs/
│
├── SmartLogs/                 # 📦 Código do pacote
│   ├── __init__.py
│   ├── logger.py              # 🔥 Implementação principal do logger
│   ├── debug.py               # 🔍 Recursos avançados de debug
│   ├── config.py              # ⚙️ Configurações globais do logger
│
├── tests/                     # 🧪 Testes unitários
│   ├── test_logger.py
│   ├── test_debug.py
│
├── pyproject.toml              # ⚙️ Configuração do pacote
├── README.md                  # 📚 Documentação do projeto
├── LICENSE                    # 📜 Licença MIT
└── MANIFEST.in                 # 📋 Inclusão de arquivos extras

📝 Licença

Distribuído sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.


👨‍💻 Autor

Desenvolvido por Roberto Lima 🚀✨


💬 Contato


⭐ Gostou do projeto?

Deixe uma ⭐ no repositório e compartilhe com a comunidade! 🚀✨

git clone https://github.com/robertolima-dev/SmartLogs.git
cd SmartLogs
pip install -e .

🌟 O que este README oferece?

  • 🎯 Descrição clara do projeto e seu propósito.
  • 🛠 Instruções detalhadas de instalação e uso prático.
  • 🏗 Estrutura do projeto para facilitar a navegação.
  • 📝 Licença e informações do autor para transparência.

Metadata

Release files for SmartLogs 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SmartLogs 1.1.2
File Size Uploaded Provenance
smartlogs-1.1.2.tar.gz 8.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for SmartLogs 1.1.2
File Interpreter ABI Platform
smartlogs-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 17.1 kB

Release files / smartlogs-1.1.2.tar.gz

Download URL smartlogs-1.1.2.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
59607313f85887b963e8888c7984f1606cafd2c1b3fa542be4e948eefe8ee0e9
BLAKE2b-256 checksum
How to use checksums
7b5c0a34167ec8f8099e28f8e7bb77448e756fe359e95740a110079d54c33fa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / smartlogs-1.1.2-py3-none-any.whl

Download URL smartlogs-1.1.2-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e1be3a16299e1cfbc2b4f9cab8c0ad7f03bfe11b8bb64d11b8503efff70db46
BLAKE2b-256 checksum
How to use checksums
856f96c11390738522314da9103864184734b7f5cacdb7d0b298417e24367991
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Security for SmartLogs 1.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page