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
│
├── 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.

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.2.tar.gz (8.9 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.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smartlogs-1.1.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for smartlogs-1.1.2.tar.gz
Algorithm Hash digest
SHA256 59607313f85887b963e8888c7984f1606cafd2c1b3fa542be4e948eefe8ee0e9
MD5 af9f478036fac15544fefc7be7d7622b
BLAKE2b-256 7b5c0a34167ec8f8099e28f8e7bb77448e756fe359e95740a110079d54c33fa7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smartlogs-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for smartlogs-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2e1be3a16299e1cfbc2b4f9cab8c0ad7f03bfe11b8bb64d11b8503efff70db46
MD5 55e5472beb3bd30a044f3824c6c5c37d
BLAKE2b-256 856f96c11390738522314da9103864184734b7f5cacdb7d0b298417e24367991

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