Package Exports
- api-stats-logger
- api-stats-logger/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (api-stats-logger) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
API Stats Logger
SDK profissional para logging e monitoramento de APIs em Node.js com instrumentação automática.
🚀 Instalação
npm install api-stats-logger⚡ Início Rápido
Configuração Automática (Recomendado)
npx api-stats-initEste comando irá:
- ✅ Configurar automaticamente o projeto
- ✅ Gerar API key
- ✅ Criar arquivos de configuração
- ✅ Detectar seu framework automaticamente
Configuração Manual
const ApiStatsLogger = require('api-stats-logger');
const logger = new ApiStatsLogger({
apiKey: process.env.API_STATS_API_KEY,
service: 'minha-api',
environment: 'production'
});
// Logging manual
logger.info('Usuário logado', { userId: 123 });
logger.error('Erro no banco', { error: 'timeout' });🔧 Frameworks Suportados
Express.js
const express = require('express');
const ApiStatsLogger = require('api-stats-logger');
const app = express();
const logger = new ApiStatsLogger();
// Middleware automático
app.use(ApiStatsLogger.expressMiddleware({ logger }));
app.listen(3000);NestJS
// Adicione no main.ts
import { ApiStatsLogger } from 'api-stats-logger';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const logger = new ApiStatsLogger();
app.use(ApiStatsLogger.nestMiddleware({ logger }));
await app.listen(3000);
}Fastify & Koa
// Fastify
fastify.register(ApiStatsLogger.fastifyPlugin());
// Koa
app.use(ApiStatsLogger.koaMiddleware());📊 Recursos
- 🚀 Auto-instrumentação - Captura automática de requests/responses
- 📈 Métricas de Performance - Response time, throughput, error rate
- 🔍 Rastreamento Distribuído - Trace IDs para debugging
- 🛡️ Segurança - Headers sensíveis automaticamente filtrados
- 📦 Zero Configuração - Funciona out-of-the-box
- 🔄 Retry Logic - Resiliente a falhas de rede
- 📱 Dashboard - Interface web para visualização
⚙️ Configuração Avançada
const logger = new ApiStatsLogger({
apiKey: process.env.API_STATS_API_KEY,
service: 'minha-api',
environment: 'production',
// Performance
batchSize: 50,
flushInterval: 5000,
maxRetries: 3,
// Recursos
captureErrors: true,
capturePerformance: true,
// Segurança
captureBody: false,
captureHeaders: false
});🔒 Segurança
O SDK automaticamente filtra headers sensíveis:
authorizationcookiex-api-keyx-auth-token
📚 Exemplos
Logging de Operações
async function processPayment(paymentData) {
const operationId = `payment_${Date.now()}`;
logger.info('Payment started', { operationId, amount: paymentData.amount });
try {
const result = await paymentGateway.process(paymentData);
logger.info('Payment completed', { operationId, paymentId: result.id });
return result;
} catch (error) {
logger.error('Payment failed', { operationId, error: error.message });
throw error;
}
}Middlewares Customizados
// Express middleware customizado
app.use(ApiStatsLogger.expressMiddleware({
logger,
captureBody: false,
captureHeaders: false,
skipPaths: ['/health', '/metrics']
}));🔧 Variáveis de Ambiente
# Obrigatório
API_STATS_API_KEY=sua-api-key-aqui
# Opcionais
API_STATS_SERVICE=minha-api
API_STATS_ENVIRONMENT=production
API_STATS_URL=https://api.exemplo.com/logs
API_STATS_ENABLED=true
API_STATS_BATCH_SIZE=20
API_STATS_FLUSH_INTERVAL=5000📈 Métricas Coletadas
- HTTP Requests: Response time, status codes, throughput
- Erros: Stack traces, frequência, categorização
- Performance: Uso de recursos, uptime
- Operações de Negócio: Transações, conversões
🆘 Suporte
- Documentação: GitHub
- Issues: GitHub Issues
- Email: support@api-stats.com
📜 Licença
MIT License - veja LICENSE para detalhes.
Desenvolvido com ❤️ para desenvolvedores Node.js