📢 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
- 📧 Email: robertolima.izphera@gmail.com
- 💼 LinkedIn: Roberto Lima
- 💼 Website: Roberto Lima
- 💼 Gravatar: Roberto Lima
⭐ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6d7e4c4caeb913873f294fbf4964de34664dd2aee5301eefe7453568d711570
|
|
| MD5 |
c4947138e13621eefa274a1cfcbe5f31
|
|
| BLAKE2b-256 |
4bfbcf7fcc083ac2d5c5e79520cde42396ddee2e812d9702d9f09b6d6b9fee6e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
254a1d81107a50100bfc2acd17cc1a10bfa1291e7942aa5dcece19e0c41e5542
|
|
| MD5 |
34e0b4880940e181bfa288d5483e88d7
|
|
| BLAKE2b-256 |
b0ec62fc5c547f5d331f5b09f32ec11c2153d11002d81afcacb5d51a187d0f87
|