FeaturesGuidesBlogDocumentationPricingGet Started
Troubleshooting

When You Need Request Inspection (And When Server Logs Are Enough)

Not every localhost tunnel needs a request inspector. Know when logging beats a visual debugger.

The inspection question

Some tunnel tools ship a web UI that shows every HTTP request — headers, body, timing, replay buttons. That is genuinely useful for webhook debugging.

LocalToLink does not include a request inspector. That is intentional: we optimize for zero-friction anonymous tunnels, not visual traffic debugging.

This article helps you decide when you need inspection tooling vs when server logs and provider dashboards are enough.

When server logs are enough

For most webhook and OAuth work, your handler already logs what matters:

npx localtolink
# Watch your terminal where npm run dev runs

Plus provider-side tools:

If you can answer "did the request arrive?" and "what status did I return?" from logs, you do not need an inspector.

When you want request inspection

Consider a dedicated inspection tool when you need to:

For that workflow, tools with built-in inspectors exist. Use them alongside or instead of a minimal tunnel for that specific debugging session.

LocalToLink workflow without inspector

  1. Add temporary logging in your handler:
app.post("/webhook", (req, res) => {
  console.log("headers:", req.headers);
  console.log("body:", req.body);
  // ... verify signature, process event
  res.sendStatus(200);
});
  1. Use provider "resend" to replay deliveries
  2. Use curl against your tunnel URL for manual tests
  3. Remove verbose logging before commit

Comparison at a glance

NeedMinimal tunnel + logsInspection UI
Confirm webhook arrivesYesYes
Debug signature failuresYes (log headers)Easier
One-click replayUse provider resendBuilt-in
Zero code changesPartialYes
No account signupLocalToLink yesVaries

Honest recommendation

You can use different tools for different tasks. Your app code does not change — only the public URL and your debugging workflow.

Framework-specific logging tips

Next.js App Router — log in route handlers:

export async function POST(request: Request) {
  const raw = await request.text();
  console.log("[webhook]", request.headers.get("stripe-signature"), raw.slice(0, 200));
  // verify + parse
}

Express — mount raw parser only on webhook routes to avoid breaking JSON APIs elsewhere.

Fastify — use addContentTypeParser with parseAs: 'buffer' for webhook paths.

Remove verbose logging before opening a PR — or gate it behind process.env.DEBUG_WEBHOOKS.

When to add temporary middleware

For opaque third-party payloads, a catch-all logger helps for one session:

app.use("/webhook", (req, res, next) => {
  console.log(`${req.method} ${req.url}`, req.headers);
  next();
});

Delete after debugging. Permanent middleware in production should use structured logging (pino, winston) with redaction for secrets.

Team collaboration without an inspector

Share debugging context via:

An inspection UI accelerates this; it is not the only path.

Provider replay features (often overlooked)

Before adding inspection tooling, check whether your provider already replays requests:

Replay sends the same payload again to your current tunnel URL. Update the URL first if your subdomain changed since the original delivery.

Start with LocalToLink, add tools when stuck

Default workflow for webhook debugging:

  1. npx localtolink + provider dashboard delivery logs
  2. Temporary console.log in handler if payloads are unclear
  3. Provider replay if you need the same event again
  4. Inspection UI only if steps 1–3 are insufficient for a specific opaque integration

Most developers never need step 4 for routine Stripe, GitHub, or Shopify work.

Start with the simplest path; add tooling only when logs and provider dashboards leave questions unanswered.

FAQ

Will LocalToLink add an inspector?
Not in v1.0. We focus on fast anonymous tunnels. Use logs or specialized tools for inspection.

Can Stripe CLI replace both tunnel and inspector?
For Stripe-only work, stripe listen forwards and shows events in terminal — excellent for Stripe, not general-purpose.

Does logging slow webhook handlers?
Verbose logging adds negligible latency for dev traffic. Remove before production deploys or use structured logging with sampling.

Can I pipe tunnel traffic to a file?
Your app logs are the right capture point. Proxy-level capture requires inspection tooling LocalToLink does not provide in v1.0.

Next steps

Try it now

Start a tunnel from your project directory — no account required.

$ npx localtolink

See the full CLI reference for flags and exit codes.

LocalToLink CLI 1.0.1 — verified 2026-09-05