Skip to main content

📢 Um logger inteligente para projetos Python, com suporte a cores, arquivos e integrações com Slack/Telegram.

Project description

📚 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
│
├── setup.py                   # ⚙️ 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.

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

smartlogs-1.1.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

smartlogs-1.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file smartlogs-1.1.0.tar.gz.

File metadata

  • Download URL: smartlogs-1.1.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for smartlogs-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a6d7e4c4caeb913873f294fbf4964de34664dd2aee5301eefe7453568d711570
MD5 c4947138e13621eefa274a1cfcbe5f31
BLAKE2b-256 4bfbcf7fcc083ac2d5c5e79520cde42396ddee2e812d9702d9f09b6d6b9fee6e

See more details on using hashes here.

File details

Details for the file smartlogs-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: smartlogs-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for smartlogs-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 254a1d81107a50100bfc2acd17cc1a10bfa1291e7942aa5dcece19e0c41e5542
MD5 34e0b4880940e181bfa288d5483e88d7
BLAKE2b-256 b0ec62fc5c547f5d331f5b09f32ec11c2153d11002d81afcacb5d51a187d0f87

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