Docs · Next.js

Logs en Next.js con alertas, en 5 minutos

Los logs y los errores de tus rutas y tus server actions, los errores que truenan en el navegador de tus clientes, y el aviso cuando un pedido no termina. En Vercel o en tu servidor.

  1. 1

    Instala

    npm i @estiaje/sdk
  2. 2

    Tu llave

    Crea tu cuenta y pon la llave en ESTIAJE_TOKEN. O pídele a tu IA «conecta este repo a Estiaje» (el conector). Sin la llave no sale nada por la red: puedes instrumentar hoy.

  3. 3

    Tus logs y tus errores, al arrancar (instrumentation.ts)

    ● Por probar
    // lib/estiaje.ts
    import { estiajeFromEnv } from '@estiaje/sdk';
    export const estiaje = estiajeFromEnv({ service: 'tienda-web' });
    
    // instrumentation.ts
    export async function register() {
      if (process.env.NEXT_RUNTIME === 'nodejs') {
        const { estiaje } = await import('./lib/estiaje');
        estiaje.capturarConsola();
        estiaje.capturarErrores();
      }
    }
    // server.ts (next con servidor propio)
    import { estiaje } from './lib/estiaje';
    estiaje.capturarConsola();
    estiaje.capturarErrores();
    
    createServer((req, res) =>
      estiaje.middleware()(req, res, () => handle(req, res))   // el hilo de cada petición
    ).listen(3000);
    <!-- app/layout.tsx, antes de </head>; la llave cp_live_ se crea en Errores -->
    <script src="https://estiaje.mx/navegador.js"
      data-llave="cp_live_…" data-servicio="tienda-web" async></script>
  4. 4

    El proceso que debe terminar

    // app/api/pedidos/route.ts
    import { estiaje } from '@/lib/estiaje';
    
    export async function POST(req: Request) {
      // … cobras el pedido …
      estiaje.event('pedido.pagado', { order_id, monto });
      await estiaje.flush();   // en Vercel, antes de responder: la función se congela
      return Response.json({ ok: true });
    }
  5. 5

    El aviso

    En el panel, en Procesos: «todo pedido.pagado espera su pedido.surtido, por order_id, en 30 minutos». Si no llega, te avisa al teléfono, por correo o en Slack, con el dinero en riesgo.

Y si quieres más
  • En Vercel, siempre await estiaje.flush() antes de responder: una función que ya respondió se congela y lo que no salió se queda sin salir.
  • Los errores de tu sitio llegan con los pasos del visitante antes del error, y ligados al pedido con estiaje.pedido('A-1042').
  • Tus despliegues: npx @estiaje/sdk desplegado en tu CI o en el paso de build de Vercel.

Todo lo demás está en la documentación completa.

La guía larga: Logs en Next.js en producción: dónde quedan y cómo no perder los errores

Crear cuenta, 14 días de Pro Sin tarjeta. En pesos.