Niveles por entorno

En produccion solo se muestran logs importantes para reducir ruido y consumo de recursos.

Desarrollo

ConsolaTodos los logs
Archivosinfo, warn, error
Nivelinfo

Produccion

ConsolaSolo errores
Archivoswarn, error
Nivelwarn
Archivos de log
logs/
error.log — Solo errores (nivel: error)
combined.log — Warn + Error en prod, todo en dev
quickbooks.log — Logs especificos de QB (intuit_tid, realmId)
Funciones disponibles

Produccion (siempre aparecen)

FuncionUso
logImportant.critical(msg, ctx)Errores criticos que requieren accion inmediata
logImportant.error(msg, ctx)Errores que necesitan investigacion
logImportant.warning(msg, ctx)Advertencias importantes para monitoreo

Solo desarrollo (no aparecen en produccion)

FuncionUso
logImportant.info(msg, ctx)Informacion general de flujo
logImportant.debug(msg, ctx)Datos detallados de debug
logImportant.warning('Rate limit alcanzado', {
  currentUsage: '450/500',
  nextReset: '2026-02-09T15:00:00Z'
});

logImportant.error('Fallo en sincronizacion', {
  errorCode: 'QB_SYNC_001',
  failedItems: ['INV-001', 'INV-002']
});
Migracion de codigo
// ANTES
const { logger } = require('../utils/logger');
logger.info('Procesando datos');

// DESPUES
const { logImportant } = require('../utils/logger');
logImportant.info('Procesando datos');
Cambio clave: Reemplazar logger por logImportant en todos los imports. Las funciones son equivalentes pero respetan los niveles por entorno.
Configuracion de produccion
// config/production.js
module.exports = {
  logging: {
    level: 'warn',           // Solo warn y error
    enableConsole: false,    // Sin logs en consola
    maxFiles: 10,            // Maximo 10 archivos por tipo
    maxSize: '10m'           // Maximo 10MB por archivo
  }
};

Beneficios

BeneficioDetalle
Rendimiento90% menos logs, sin consola en prod, menos I/O de disco
MantenimientoSolo logs importantes, alertas mas precisas
SeguridadSin info sensible en logs de debug, control granular
AlmacenamientoRotacion automatica, archivos mas pequenos
Monitoreo y pruebas
# Probar en desarrollo (todos los logs)
node examples/production-logging-example.js

# Probar en produccion (solo warn + error)
NODE_ENV=production node examples/production-logging-example.js

# Monitorear en tiempo real
tail -f logs/error.log
tail -f logs/combined.log
tail -f logs/quickbooks.log

Troubleshooting

ProblemaSolucion
Logs no aparecen en produccionVerificar NODE_ENV=production, usar logImportant.error()
Demasiados logs en devUsar logImportant.debug(), reducir LOG_LEVEL
Archivos de log muy grandesAjustar maxSize y maxFiles en config