---
title: "Use Cases"
description: "Recipes that each solve one problem: browser logs, AI SDK calls, user identity, a tamper-evident audit trail, tool telemetry, derived context."
canonical_url: "https://www.evlog.dev/use-cases/overview"
---
# Use Cases

> Recipes that each solve one problem: browser logs, AI SDK calls, user identity, a tamper-evident audit trail, tool telemetry, derived context.

Use Cases are **recipes**, not features. Each one solves a specific problem with the same evlog primitives you already know: wide events, structured errors, drains, enrichers. They live as their own section because they have enough surface area (multiple pages each, dedicated examples) to deserve direct navigation, but they're not a separate runtime: same logger, same drain pipeline, same types.

<table>
<thead>
  <tr>
    <th>
      You want to…
    </th>
    
    <th>
      See
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Follow a Node.js request from response ID to a JSON event, including a failed payment
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/structured-logging-nodejs">
        Node.js request logging
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Send browser logs to your server with batching, retries, and <code>
        sendBeacon
      </code>
      
       fallback
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/client-logging">
        Client Logging
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Capture every AI SDK call with token usage, tool calls, streaming metrics, and cost
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/ai-sdk/overview">
        AI SDK
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Identify the authenticated user (and their org / role) on every wide event
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/better-auth/overview">
        Better Auth
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Build a tamper-evident audit trail with hash chains, denials, redaction-aware diffs
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/audit/overview">
        Audit Logs
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Instrument CLIs and automation with one wide event per run, consent, and disclosure
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/telemetry/overview">
        Telemetry
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Ask a decision model one question per event and keep the 200s that were silent failures
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/signals/overview">
        Signals
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Export wide events from <a href="https://eve.dev" rel="nofollow">
        eve
      </a>
      
       agent turns (tokens, tools, drains)
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/eve">
        eve
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      Add derived context (User-Agent, geo, request size, trace context) to every event
    </td>
    
    <td>
      <a href="https://www.evlog.dev/use-cases/enrichers">
        Enrichers
      </a>
    </td>
  </tr>
</tbody>
</table>

## How they relate

```text
your app code
     │
     ▼
┌──────────────────────────────────────────────────────────────────┐
│   evlog logger                                                   │
│                                                                  │
│   ┌─────────────────┐   ┌─────────────────┐   ┌──────────────┐   │
│   │ Client logs     │   │ AI SDK wrapper  │   │ Audit logger │   │
│   │ (browser → API) │   │ (token / tools) │   │ (hash chain) │   │
│   └─────────────────┘   └─────────────────┘   └──────────────┘   │
│            │                     │                    │          │
│            └─────────────────────┼────────────────────┘          │
│                                  ▼                               │
│                       enrich  →  drain                           │
│                       (User-Agent, geo, trace, …)                │
└──────────────────────────────────────────────────────────────────┘
```

Every use case is opt-in. Adopt the ones your application needs. They coexist in the same logger, the same drain pipeline, and the same enrich chain.

## Where to go next

- Building a new use case from scratch? Start with [Wide Events](https://www.evlog.dev/learn/wide-events) for the conceptual model.
- Need to send the resulting events somewhere? Pick an [adapter](https://www.evlog.dev/integrate/adapters/overview).
- Want to write your own use case as a reusable enricher / plugin? See [Custom Enrichers](https://www.evlog.dev/extend/custom-enrichers) or [Plugins](https://www.evlog.dev/extend/plugins).

---

- [Client Logging](https://www.evlog.dev/use-cases/client-logging)
- [AI SDK](https://www.evlog.dev/use-cases/ai-sdk/overview)
- [Audit Logs](https://www.evlog.dev/use-cases/audit/overview)
- [Telemetry](https://www.evlog.dev/use-cases/telemetry/overview)
- [Signals](https://www.evlog.dev/use-cases/signals/overview)


## Sitemap

See the full [sitemap](https://www.evlog.dev/sitemap.md) for all pages.
