{
  "slug": "modules/logs",
  "title": "Logs module",
  "description": "Aggregate structured logs from your services with search, filters, and tail.",
  "url": "https://cuitty.com/docs/modules/logs",
  "markdown_url": "https://cuitty.com/docs/modules/logs.md",
  "json_url": "https://cuitty.com/docs/modules/logs.json",
  "frontmatter": {
    "title": "Logs module",
    "description": "Aggregate structured logs from your services with search, filters, and tail.",
    "order": 4,
    "section": "Modules",
    "updatedAt": "2026-04-27"
  },
  "headings": [
    {
      "depth": 1,
      "slug": "logs-module",
      "text": "Logs module"
    },
    {
      "depth": 2,
      "slug": "event-shape",
      "text": "Event shape"
    },
    {
      "depth": 2,
      "slug": "pino-bridge",
      "text": "Pino bridge"
    }
  ],
  "body_markdown": "# Logs module\n\nThe logs module is a low-noise structured log store. It indexes by `level`, `module`, and `service`, but does not attempt to compete with full-text logging stores. Cuitty assumes you keep heavy log volumes elsewhere — ship the high-signal subset here.\n\n## Event shape\n\n```json\n{\n  \"type\": \"log\",\n  \"ts\": \"2026-04-27T13:00:00Z\",\n  \"data\": {\n    \"level\": \"info\",\n    \"message\": \"request processed\",\n    \"module\": \"api\",\n    \"service\": \"api\",\n    \"fields\": {\n      \"requestId\": \"abc\",\n      \"userId\": \"user_123\"\n    }\n  }\n}\n```\n\n## Pino bridge\n\nThe TypeScript SDK ships a Pino multistream adapter so adding Cuitty as a destination is one line:\n\n```typescript\ncuitty.use(logsPlugin({ logger: pino, minLevel: \"info\" }));\n```",
  "body_html": "<h1 id=\"logs-module\">Logs module</h1>\n<p>The logs module is a low-noise structured log store. It indexes by <code>level</code>, <code>module</code>, and <code>service</code>, but does not attempt to compete with full-text logging stores. Cuitty assumes you keep heavy log volumes elsewhere — ship the high-signal subset here.</p>\n<h2 id=\"event-shape\">Event shape</h2>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"json\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">{</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"type\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"log\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"ts\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"2026-04-27T13:00:00Z\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"data\"</span><span style=\"color:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"level\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"info\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"message\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"request processed\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"module\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"api\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"service\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"api\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"fields\"</span><span style=\"color:#E1E4E8\">: {</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"requestId\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"abc\"</span><span style=\"color:#E1E4E8\">,</span></span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"userId\"</span><span style=\"color:#E1E4E8\">: </span><span style=\"color:#9ECBFF\">\"user_123\"</span></span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }</span></span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  }</span></span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}</span></span></code></pre>\n<h2 id=\"pino-bridge\">Pino bridge</h2>\n<p>The TypeScript SDK ships a Pino multistream adapter so adding Cuitty as a destination is one line:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"typescript\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">cuitty.</span><span style=\"color:#B392F0\">use</span><span style=\"color:#E1E4E8\">(</span><span style=\"color:#B392F0\">logsPlugin</span><span style=\"color:#E1E4E8\">({ logger: pino, minLevel: </span><span style=\"color:#9ECBFF\">\"info\"</span><span style=\"color:#E1E4E8\"> }));</span></span></code></pre>",
  "links_out": []
}