📚 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
- 📧 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.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| smartlogs-1.1.2.tar.gz | 8.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.