Integrations / Frameworks / Hono

๐Ÿ”ฅ

Hono

Log events from Hono route handlers. Works on every runtime Hono supports โ€” Cloudflare Workers, Bun, Node.js, Deno.


Install

bash
npm install logit hono

Initialize

ts
import { Hono } from "hono";
import { init } from "logit";

const logit = init({ token: process.env.LOGIT_API_KEY! });
const app = new Hono();

Route handler

ts
app.post("/signup", async (c) => {
  const { email, plan } = await c.req.json<{ email: string; plan: string }>();

  // ... create user

  await logit.now("signups", {
    event: "New user signed up",
    description: `${email} joined on ${plan}`,
    icon: "๐Ÿ‘ค",
    notify: true,
    tags: { plan },
    metadata: { email },
  });

  return c.json({ ok: true });
});

Middleware (log every request)

ts
app.use("*", async (c, next) => {
  await next();
  if (c.res.status >= 500) {
    await logit.now("errors", {
      event: "5xx error",
      description: `${c.req.method} ${c.req.path} โ†’ ${c.res.status}`,
      icon: "โŒ",
      notify: true,
    });
  }
});

On Cloudflare Workers

Use the Bindings pattern to inject secrets at runtime:

ts
type Env = { LOGIT_API_KEY: string };

const app = new Hono<{ Bindings: Env }>();

app.post("/event", async (c) => {
  const logit = init({ token: c.env.LOGIT_API_KEY });
  await logit.now("events", { event: "Worker event", icon: "โšก" });
  return c.text("ok");
});

Ready to connect Hono?

7-day free trial. No credit card required.

Start free