[{"data":1,"prerenderedAt":3042},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-hono":297,"-frameworks-hono-surround":3037},[4,30,70,115,203,267,283],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Logging","\u002Flogging","2.logging",[35,40,45,50,55,60,65],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":61,"path":62,"stem":63,"icon":64},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":66,"path":67,"stem":68,"icon":69},"Better Auth Integration","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth","i-simple-icons-betterauth",{"title":71,"path":72,"stem":73,"children":74,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[75,80,85,90,95,100,105,110],{"title":76,"path":77,"stem":78,"icon":79},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":81,"path":82,"stem":83,"icon":84},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":86,"path":87,"stem":88,"icon":89},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":91,"path":92,"stem":93,"icon":94},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":96,"path":97,"stem":98,"icon":99},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices","i-lucide-shield-check",{"title":101,"path":102,"stem":103,"icon":104},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":106,"path":107,"stem":108,"icon":109},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":111,"path":112,"stem":113,"icon":114},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Frameworks","\u002Fframeworks","4.frameworks",[120,124,129,134,139,144,149,154,159,164,169,174,179,184,188,193,198],{"title":36,"path":121,"stem":122,"icon":123},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":125,"path":126,"stem":127,"icon":128},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":130,"path":131,"stem":132,"icon":133},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":135,"path":136,"stem":137,"icon":138},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":140,"path":141,"stem":142,"icon":143},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":145,"path":146,"stem":147,"icon":148},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":150,"path":151,"stem":152,"icon":153},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":155,"path":156,"stem":157,"icon":158},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":160,"path":161,"stem":162,"icon":163},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":165,"path":166,"stem":167,"icon":168},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":170,"path":171,"stem":172,"icon":173},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":175,"path":176,"stem":177,"icon":178},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":180,"path":181,"stem":182,"icon":183},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":185,"path":186,"stem":187,"icon":94},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":189,"path":190,"stem":191,"icon":192},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":194,"path":195,"stem":196,"icon":197},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":199,"path":200,"stem":201,"icon":202},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":204,"path":205,"stem":206,"children":207,"page":29},"Adapters","\u002Fadapters","5.adapters",[208,212,217,222,227,232,237,242,247,252,257,262],{"title":36,"path":209,"stem":210,"icon":211},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":213,"path":214,"stem":215,"icon":216},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F10.custom","i-lucide-code",{"title":218,"path":219,"stem":220,"icon":221},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F11.pipeline","i-lucide-workflow",{"title":223,"path":224,"stem":225,"icon":226},"HTTP","\u002Fadapters\u002Fhttp","5.adapters\u002F12.http","i-lucide-globe",{"title":228,"path":229,"stem":230,"icon":231},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":233,"path":234,"stem":235,"icon":236},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":238,"path":239,"stem":240,"icon":241},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":243,"path":244,"stem":245,"icon":246},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":248,"path":249,"stem":250,"icon":251},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":253,"path":254,"stem":255,"icon":256},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":258,"path":259,"stem":260,"icon":261},"Datadog","\u002Fadapters\u002Fdatadog","5.adapters\u002F8.datadog","i-simple-icons-datadog",{"title":263,"path":264,"stem":265,"icon":266},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F9.hyperdx","i-custom-hyperdx",{"title":268,"path":269,"stem":270,"children":271,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[272,275,279],{"title":36,"path":273,"stem":274,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":276,"path":277,"stem":278,"icon":197},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":280,"path":281,"stem":282,"icon":216},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":284,"path":285,"stem":286,"children":287,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[288,292],{"title":36,"path":289,"stem":290,"icon":291},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":293,"path":294,"stem":295,"icon":296},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":298,"title":160,"body":299,"description":3028,"extension":3029,"links":3030,"meta":3033,"navigation":3034,"path":161,"seo":3035,"stem":162,"__hash__":3036},"docs\u002F4.frameworks\u002F08.hono.md",{"type":300,"value":301,"toc":3008},"minimark",[302,315,408,412,417,444,448,827,852,860,863,866,1195,1198,1262,1289,1293,1312,1546,1553,1771,1792,1795,1861,1864,1874,1878,1881,2048,2052,2059,2247,2258,2262,2268,2372,2376,2387,2530,2534,2540,2544,2698,2702,2709,2891,2899,2903,2944,2953,2963,2967,2973,3004],[303,304,305,306,310,311,314],"p",{},"The ",[307,308,309],"code",{},"evlog\u002Fhono"," middleware auto-creates a request-scoped logger accessible via ",[307,312,313],{},"c.get('log')"," and emits a wide event when the response completes.",[316,317,318],"code-collapse",{},[319,320,326],"pre",{"className":321,"code":322,"filename":323,"language":324,"meta":325,"style":325},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Set up evlog in my Hono app.\n\n- Install evlog: pnpm add evlog\n- Call initLogger({ env: { service: 'my-api' } }) at startup\n- Alternatively, use evlog\u002Fvite plugin in vite.config.ts for auto-init (replaces initLogger)\n- Import evlog middleware and EvlogVariables type from 'evlog\u002Fhono'\n- Add app.use(evlog()) and type the app with Hono\u003CEvlogVariables>\n- Access the logger via c.get('log') in route handlers\n- Use log.set() to accumulate context throughout the request\n- Optionally pass drain, enrich, include, and keep options to evlog()\n\nDocs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fhono\nAdapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n","Prompt","txt","",[307,327,328,336,343,349,355,361,367,373,379,385,391,396,402],{"__ignoreMap":325},[329,330,333],"span",{"class":331,"line":332},"line",1,[329,334,335],{},"Set up evlog in my Hono app.\n",[329,337,339],{"class":331,"line":338},2,[329,340,342],{"emptyLinePlaceholder":341},true,"\n",[329,344,346],{"class":331,"line":345},3,[329,347,348],{},"- Install evlog: pnpm add evlog\n",[329,350,352],{"class":331,"line":351},4,[329,353,354],{},"- Call initLogger({ env: { service: 'my-api' } }) at startup\n",[329,356,358],{"class":331,"line":357},5,[329,359,360],{},"- Alternatively, use evlog\u002Fvite plugin in vite.config.ts for auto-init (replaces initLogger)\n",[329,362,364],{"class":331,"line":363},6,[329,365,366],{},"- Import evlog middleware and EvlogVariables type from 'evlog\u002Fhono'\n",[329,368,370],{"class":331,"line":369},7,[329,371,372],{},"- Add app.use(evlog()) and type the app with Hono\u003CEvlogVariables>\n",[329,374,376],{"class":331,"line":375},8,[329,377,378],{},"- Access the logger via c.get('log') in route handlers\n",[329,380,382],{"class":331,"line":381},9,[329,383,384],{},"- Use log.set() to accumulate context throughout the request\n",[329,386,388],{"class":331,"line":387},10,[329,389,390],{},"- Optionally pass drain, enrich, include, and keep options to evlog()\n",[329,392,394],{"class":331,"line":393},11,[329,395,342],{"emptyLinePlaceholder":341},[329,397,399],{"class":331,"line":398},12,[329,400,401],{},"Docs: https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Fhono\n",[329,403,405],{"class":331,"line":404},13,[329,406,407],{},"Adapters: https:\u002F\u002Fwww.evlog.dev\u002Fadapters\n",[409,410,20],"h2",{"id":411},"quick-start",[413,414,416],"h3",{"id":415},"_1-install","1. Install",[319,418,423],{"className":419,"code":420,"filename":421,"language":422,"meta":325,"style":325},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog hono @hono\u002Fnode-server\n","Terminal","bash",[307,424,425],{"__ignoreMap":325},[329,426,427,431,435,438,441],{"class":331,"line":332},[329,428,430],{"class":429},"sBMFI","bun",[329,432,434],{"class":433},"sfazB"," add",[329,436,437],{"class":433}," evlog",[329,439,440],{"class":433}," hono",[329,442,443],{"class":433}," @hono\u002Fnode-server\n",[413,445,447],{"id":446},"_2-initialize-and-register-the-middleware","2. Initialize and register the middleware",[319,449,454],{"className":450,"code":451,"filename":452,"language":453,"meta":325,"style":325},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { serve } from '@hono\u002Fnode-server'\nimport { Hono } from 'hono'\nimport { initLogger } from 'evlog'\nimport { evlog, type EvlogVariables } from 'evlog\u002Fhono'\n\ninitLogger({\n  env: { service: 'my-api' },\n})\n\nconst app = new Hono\u003CEvlogVariables>()\n\napp.use(evlog())\n\napp.get('\u002Fhealth', (c) => {\n  c.get('log').set({ route: 'health' })\n  return c.json({ ok: true })\n})\n\nserve({ fetch: app.fetch, port: 3000 })\n","src\u002Findex.ts","typescript",[307,455,456,485,505,525,552,556,568,595,603,607,636,640,658,662,699,746,777,784,789],{"__ignoreMap":325},[329,457,458,462,466,470,473,476,479,482],{"class":331,"line":332},[329,459,461],{"class":460},"s7zQu","import",[329,463,465],{"class":464},"sMK4o"," {",[329,467,469],{"class":468},"sTEyZ"," serve",[329,471,472],{"class":464}," }",[329,474,475],{"class":460}," from",[329,477,478],{"class":464}," '",[329,480,481],{"class":433},"@hono\u002Fnode-server",[329,483,484],{"class":464},"'\n",[329,486,487,489,491,494,496,498,500,503],{"class":331,"line":338},[329,488,461],{"class":460},[329,490,465],{"class":464},[329,492,493],{"class":468}," Hono",[329,495,472],{"class":464},[329,497,475],{"class":460},[329,499,478],{"class":464},[329,501,502],{"class":433},"hono",[329,504,484],{"class":464},[329,506,507,509,511,514,516,518,520,523],{"class":331,"line":345},[329,508,461],{"class":460},[329,510,465],{"class":464},[329,512,513],{"class":468}," initLogger",[329,515,472],{"class":464},[329,517,475],{"class":460},[329,519,478],{"class":464},[329,521,522],{"class":433},"evlog",[329,524,484],{"class":464},[329,526,527,529,531,533,536,539,542,544,546,548,550],{"class":331,"line":351},[329,528,461],{"class":460},[329,530,465],{"class":464},[329,532,437],{"class":468},[329,534,535],{"class":464},",",[329,537,538],{"class":460}," type",[329,540,541],{"class":468}," EvlogVariables",[329,543,472],{"class":464},[329,545,475],{"class":460},[329,547,478],{"class":464},[329,549,309],{"class":433},[329,551,484],{"class":464},[329,553,554],{"class":331,"line":357},[329,555,342],{"emptyLinePlaceholder":341},[329,557,558,562,565],{"class":331,"line":363},[329,559,561],{"class":560},"s2Zo4","initLogger",[329,563,564],{"class":468},"(",[329,566,567],{"class":464},"{\n",[329,569,570,574,577,579,582,584,586,589,592],{"class":331,"line":369},[329,571,573],{"class":572},"swJcz","  env",[329,575,576],{"class":464},":",[329,578,465],{"class":464},[329,580,581],{"class":572}," service",[329,583,576],{"class":464},[329,585,478],{"class":464},[329,587,588],{"class":433},"my-api",[329,590,591],{"class":464},"'",[329,593,594],{"class":464}," },\n",[329,596,597,600],{"class":331,"line":375},[329,598,599],{"class":464},"}",[329,601,602],{"class":468},")\n",[329,604,605],{"class":331,"line":381},[329,606,342],{"emptyLinePlaceholder":341},[329,608,609,613,616,619,622,624,627,630,633],{"class":331,"line":387},[329,610,612],{"class":611},"spNyl","const",[329,614,615],{"class":468}," app ",[329,617,618],{"class":464},"=",[329,620,621],{"class":464}," new",[329,623,493],{"class":560},[329,625,626],{"class":464},"\u003C",[329,628,629],{"class":429},"EvlogVariables",[329,631,632],{"class":464},">",[329,634,635],{"class":468},"()\n",[329,637,638],{"class":331,"line":393},[329,639,342],{"emptyLinePlaceholder":341},[329,641,642,645,648,651,653,655],{"class":331,"line":398},[329,643,644],{"class":468},"app",[329,646,647],{"class":464},".",[329,649,650],{"class":560},"use",[329,652,564],{"class":468},[329,654,522],{"class":560},[329,656,657],{"class":468},"())\n",[329,659,660],{"class":331,"line":404},[329,661,342],{"emptyLinePlaceholder":341},[329,663,665,667,669,672,674,676,679,681,683,686,690,693,696],{"class":331,"line":664},14,[329,666,644],{"class":468},[329,668,647],{"class":464},[329,670,671],{"class":560},"get",[329,673,564],{"class":468},[329,675,591],{"class":464},[329,677,678],{"class":433},"\u002Fhealth",[329,680,591],{"class":464},[329,682,535],{"class":464},[329,684,685],{"class":464}," (",[329,687,689],{"class":688},"sHdIc","c",[329,691,692],{"class":464},")",[329,694,695],{"class":611}," =>",[329,697,698],{"class":464}," {\n",[329,700,702,705,707,709,711,713,716,718,720,722,725,727,730,733,735,737,740,742,744],{"class":331,"line":701},15,[329,703,704],{"class":468},"  c",[329,706,647],{"class":464},[329,708,671],{"class":560},[329,710,564],{"class":572},[329,712,591],{"class":464},[329,714,715],{"class":433},"log",[329,717,591],{"class":464},[329,719,692],{"class":572},[329,721,647],{"class":464},[329,723,724],{"class":560},"set",[329,726,564],{"class":572},[329,728,729],{"class":464},"{",[329,731,732],{"class":572}," route",[329,734,576],{"class":464},[329,736,478],{"class":464},[329,738,739],{"class":433},"health",[329,741,591],{"class":464},[329,743,472],{"class":464},[329,745,602],{"class":572},[329,747,749,752,755,757,760,762,764,767,769,773,775],{"class":331,"line":748},16,[329,750,751],{"class":460},"  return",[329,753,754],{"class":468}," c",[329,756,647],{"class":464},[329,758,759],{"class":560},"json",[329,761,564],{"class":572},[329,763,729],{"class":464},[329,765,766],{"class":572}," ok",[329,768,576],{"class":464},[329,770,772],{"class":771},"sfNiH"," true",[329,774,472],{"class":464},[329,776,602],{"class":572},[329,778,780,782],{"class":331,"line":779},17,[329,781,599],{"class":464},[329,783,602],{"class":468},[329,785,787],{"class":331,"line":786},18,[329,788,342],{"emptyLinePlaceholder":341},[329,790,792,795,797,799,802,804,807,809,812,814,817,819,823,825],{"class":331,"line":791},19,[329,793,794],{"class":560},"serve",[329,796,564],{"class":468},[329,798,729],{"class":464},[329,800,801],{"class":572}," fetch",[329,803,576],{"class":464},[329,805,806],{"class":468}," app",[329,808,647],{"class":464},[329,810,811],{"class":468},"fetch",[329,813,535],{"class":464},[329,815,816],{"class":572}," port",[329,818,576],{"class":464},[329,820,822],{"class":821},"sbssI"," 3000",[329,824,472],{"class":464},[329,826,602],{"class":468},[828,829,831,835,836,843,844,847,848,851],"callout",{"color":830,"icon":109},"info",[832,833,834],"strong",{},"Using Vite?"," The ",[837,838,839,842],"a",{"href":107},[307,840,841],{},"evlog\u002Fvite"," plugin"," replaces the ",[307,845,846],{},"initLogger()"," call with compile-time auto-initialization, strips ",[307,849,850],{},"log.debug()"," from production builds, and injects source locations.",[303,853,305,854,856,857,859],{},[307,855,629],{}," type gives you typed access to ",[307,858,313],{}," across all route handlers.",[409,861,46],{"id":862},"wide-events",[303,864,865],{},"Build up context progressively through your handler. One request = one wide event:",[319,867,869],{"className":450,"code":868,"filename":452,"language":453,"meta":325,"style":325},"app.get('\u002Fusers\u002F:id', async (c) => {\n  const log = c.get('log')\n  const userId = c.req.param('id')\n\n  log.set({ user: { id: userId } })\n\n  const user = await db.findUser(userId)\n  log.set({ user: { name: user.name, plan: user.plan } })\n\n  const orders = await db.findOrders(userId)\n  log.set({ orders: { count: orders.length, totalRevenue: sum(orders) } })\n\n  return c.json({ user, orders })\n})\n",[307,870,871,903,930,962,966,999,1003,1029,1079,1083,1107,1161,1165,1189],{"__ignoreMap":325},[329,872,873,875,877,879,881,883,886,888,890,893,895,897,899,901],{"class":331,"line":332},[329,874,644],{"class":468},[329,876,647],{"class":464},[329,878,671],{"class":560},[329,880,564],{"class":468},[329,882,591],{"class":464},[329,884,885],{"class":433},"\u002Fusers\u002F:id",[329,887,591],{"class":464},[329,889,535],{"class":464},[329,891,892],{"class":611}," async",[329,894,685],{"class":464},[329,896,689],{"class":688},[329,898,692],{"class":464},[329,900,695],{"class":611},[329,902,698],{"class":464},[329,904,905,908,911,914,916,918,920,922,924,926,928],{"class":331,"line":338},[329,906,907],{"class":611},"  const",[329,909,910],{"class":468}," log",[329,912,913],{"class":464}," =",[329,915,754],{"class":468},[329,917,647],{"class":464},[329,919,671],{"class":560},[329,921,564],{"class":572},[329,923,591],{"class":464},[329,925,715],{"class":433},[329,927,591],{"class":464},[329,929,602],{"class":572},[329,931,932,934,937,939,941,943,946,948,951,953,955,958,960],{"class":331,"line":345},[329,933,907],{"class":611},[329,935,936],{"class":468}," userId",[329,938,913],{"class":464},[329,940,754],{"class":468},[329,942,647],{"class":464},[329,944,945],{"class":468},"req",[329,947,647],{"class":464},[329,949,950],{"class":560},"param",[329,952,564],{"class":572},[329,954,591],{"class":464},[329,956,957],{"class":433},"id",[329,959,591],{"class":464},[329,961,602],{"class":572},[329,963,964],{"class":331,"line":351},[329,965,342],{"emptyLinePlaceholder":341},[329,967,968,971,973,975,977,979,982,984,986,989,991,993,995,997],{"class":331,"line":357},[329,969,970],{"class":468},"  log",[329,972,647],{"class":464},[329,974,724],{"class":560},[329,976,564],{"class":572},[329,978,729],{"class":464},[329,980,981],{"class":572}," user",[329,983,576],{"class":464},[329,985,465],{"class":464},[329,987,988],{"class":572}," id",[329,990,576],{"class":464},[329,992,936],{"class":468},[329,994,472],{"class":464},[329,996,472],{"class":464},[329,998,602],{"class":572},[329,1000,1001],{"class":331,"line":363},[329,1002,342],{"emptyLinePlaceholder":341},[329,1004,1005,1007,1009,1011,1014,1017,1019,1022,1024,1027],{"class":331,"line":369},[329,1006,907],{"class":611},[329,1008,981],{"class":468},[329,1010,913],{"class":464},[329,1012,1013],{"class":460}," await",[329,1015,1016],{"class":468}," db",[329,1018,647],{"class":464},[329,1020,1021],{"class":560},"findUser",[329,1023,564],{"class":572},[329,1025,1026],{"class":468},"userId",[329,1028,602],{"class":572},[329,1030,1031,1033,1035,1037,1039,1041,1043,1045,1047,1050,1052,1054,1056,1059,1061,1064,1066,1068,1070,1073,1075,1077],{"class":331,"line":375},[329,1032,970],{"class":468},[329,1034,647],{"class":464},[329,1036,724],{"class":560},[329,1038,564],{"class":572},[329,1040,729],{"class":464},[329,1042,981],{"class":572},[329,1044,576],{"class":464},[329,1046,465],{"class":464},[329,1048,1049],{"class":572}," name",[329,1051,576],{"class":464},[329,1053,981],{"class":468},[329,1055,647],{"class":464},[329,1057,1058],{"class":468},"name",[329,1060,535],{"class":464},[329,1062,1063],{"class":572}," plan",[329,1065,576],{"class":464},[329,1067,981],{"class":468},[329,1069,647],{"class":464},[329,1071,1072],{"class":468},"plan",[329,1074,472],{"class":464},[329,1076,472],{"class":464},[329,1078,602],{"class":572},[329,1080,1081],{"class":331,"line":381},[329,1082,342],{"emptyLinePlaceholder":341},[329,1084,1085,1087,1090,1092,1094,1096,1098,1101,1103,1105],{"class":331,"line":387},[329,1086,907],{"class":611},[329,1088,1089],{"class":468}," orders",[329,1091,913],{"class":464},[329,1093,1013],{"class":460},[329,1095,1016],{"class":468},[329,1097,647],{"class":464},[329,1099,1100],{"class":560},"findOrders",[329,1102,564],{"class":572},[329,1104,1026],{"class":468},[329,1106,602],{"class":572},[329,1108,1109,1111,1113,1115,1117,1119,1121,1123,1125,1128,1130,1132,1134,1137,1139,1142,1144,1147,1149,1152,1155,1157,1159],{"class":331,"line":393},[329,1110,970],{"class":468},[329,1112,647],{"class":464},[329,1114,724],{"class":560},[329,1116,564],{"class":572},[329,1118,729],{"class":464},[329,1120,1089],{"class":572},[329,1122,576],{"class":464},[329,1124,465],{"class":464},[329,1126,1127],{"class":572}," count",[329,1129,576],{"class":464},[329,1131,1089],{"class":468},[329,1133,647],{"class":464},[329,1135,1136],{"class":468},"length",[329,1138,535],{"class":464},[329,1140,1141],{"class":572}," totalRevenue",[329,1143,576],{"class":464},[329,1145,1146],{"class":560}," sum",[329,1148,564],{"class":572},[329,1150,1151],{"class":468},"orders",[329,1153,1154],{"class":572},") ",[329,1156,599],{"class":464},[329,1158,472],{"class":464},[329,1160,602],{"class":572},[329,1162,1163],{"class":331,"line":398},[329,1164,342],{"emptyLinePlaceholder":341},[329,1166,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187],{"class":331,"line":404},[329,1168,751],{"class":460},[329,1170,754],{"class":468},[329,1172,647],{"class":464},[329,1174,759],{"class":560},[329,1176,564],{"class":572},[329,1178,729],{"class":464},[329,1180,981],{"class":468},[329,1182,535],{"class":464},[329,1184,1089],{"class":468},[329,1186,472],{"class":464},[329,1188,602],{"class":572},[329,1190,1191,1193],{"class":331,"line":664},[329,1192,599],{"class":464},[329,1194,602],{"class":468},[303,1196,1197],{},"All fields are merged into a single wide event emitted when the request completes:",[319,1199,1202],{"className":419,"code":1200,"filename":1201,"language":422,"meta":325,"style":325},"14:58:15 INFO [my-api] GET \u002Fusers\u002Fusr_123 200 in 12ms\n  ├─ orders: count=2 totalRevenue=6298\n  ├─ user: id=usr_123 name=Alice plan=pro\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[307,1203,1204,1215,1235,1251],{"__ignoreMap":325},[329,1205,1206,1209,1212],{"class":331,"line":332},[329,1207,1208],{"class":429},"14:58:15",[329,1210,1211],{"class":433}," INFO",[329,1213,1214],{"class":468}," [my-api] GET \u002Fusers\u002Fusr_123 200 in 12ms\n",[329,1216,1217,1220,1223,1226,1229,1232],{"class":331,"line":338},[329,1218,1219],{"class":429},"  ├─",[329,1221,1222],{"class":433}," orders:",[329,1224,1225],{"class":433}," count=",[329,1227,1228],{"class":821},"2",[329,1230,1231],{"class":433}," totalRevenue=",[329,1233,1234],{"class":821},"6298\n",[329,1236,1237,1239,1242,1245,1248],{"class":331,"line":345},[329,1238,1219],{"class":429},[329,1240,1241],{"class":433}," user:",[329,1243,1244],{"class":433}," id=usr_123",[329,1246,1247],{"class":433}," name=Alice",[329,1249,1250],{"class":433}," plan=pro\n",[329,1252,1253,1256,1259],{"class":331,"line":351},[329,1254,1255],{"class":429},"  └─",[329,1257,1258],{"class":433}," requestId:",[329,1260,1261],{"class":433}," 4a8ff3a8-...\n",[303,1263,1264,1265,1270,1271,1273,1274,1280,1281,1284,1285,647],{},"Hono does not attach ",[832,1266,1267],{},[307,1268,1269],{},"log.fork()"," yet (access the logger via ",[307,1272,313],{}," only). If you schedule async work after the response, post-emit ",[832,1275,1276,1279],{},[307,1277,1278],{},"[evlog]"," warnings"," still help you notice stale ",[307,1282,1283],{},"set()"," calls. See ",[837,1286,1288],{"href":1287},"\u002Flogging\u002Fwide-events#after-emit-sealing-and-background-work","Wide events — After emit",[409,1290,1292],{"id":1291},"error-handling","Error Handling",[303,1294,1295,1296,1299,1300,1303,1304,1307,1308,1311],{},"Use ",[307,1297,1298],{},"createError"," for structured errors with ",[307,1301,1302],{},"why",", ",[307,1305,1306],{},"fix",", and ",[307,1309,1310],{},"link"," fields:",[319,1313,1315],{"className":450,"code":1314,"filename":452,"language":453,"meta":325,"style":325},"import { createError, parseError } from 'evlog'\n\napp.get('\u002Fcheckout', (c) => {\n  const log = c.get('log')\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  throw createError({\n    message: 'Payment failed',\n    status: 402,\n    why: 'Card declined by issuer',\n    fix: 'Try a different payment method',\n    link: 'https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined',\n  })\n})\n",[307,1316,1317,1341,1345,1374,1398,1441,1445,1456,1473,1485,1501,1517,1533,1540],{"__ignoreMap":325},[329,1318,1319,1321,1323,1326,1328,1331,1333,1335,1337,1339],{"class":331,"line":332},[329,1320,461],{"class":460},[329,1322,465],{"class":464},[329,1324,1325],{"class":468}," createError",[329,1327,535],{"class":464},[329,1329,1330],{"class":468}," parseError",[329,1332,472],{"class":464},[329,1334,475],{"class":460},[329,1336,478],{"class":464},[329,1338,522],{"class":433},[329,1340,484],{"class":464},[329,1342,1343],{"class":331,"line":338},[329,1344,342],{"emptyLinePlaceholder":341},[329,1346,1347,1349,1351,1353,1355,1357,1360,1362,1364,1366,1368,1370,1372],{"class":331,"line":345},[329,1348,644],{"class":468},[329,1350,647],{"class":464},[329,1352,671],{"class":560},[329,1354,564],{"class":468},[329,1356,591],{"class":464},[329,1358,1359],{"class":433},"\u002Fcheckout",[329,1361,591],{"class":464},[329,1363,535],{"class":464},[329,1365,685],{"class":464},[329,1367,689],{"class":688},[329,1369,692],{"class":464},[329,1371,695],{"class":611},[329,1373,698],{"class":464},[329,1375,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396],{"class":331,"line":351},[329,1377,907],{"class":611},[329,1379,910],{"class":468},[329,1381,913],{"class":464},[329,1383,754],{"class":468},[329,1385,647],{"class":464},[329,1387,671],{"class":560},[329,1389,564],{"class":572},[329,1391,591],{"class":464},[329,1393,715],{"class":433},[329,1395,591],{"class":464},[329,1397,602],{"class":572},[329,1399,1400,1402,1404,1406,1408,1410,1413,1415,1417,1420,1422,1425,1427,1430,1432,1435,1437,1439],{"class":331,"line":357},[329,1401,970],{"class":468},[329,1403,647],{"class":464},[329,1405,724],{"class":560},[329,1407,564],{"class":572},[329,1409,729],{"class":464},[329,1411,1412],{"class":572}," cart",[329,1414,576],{"class":464},[329,1416,465],{"class":464},[329,1418,1419],{"class":572}," items",[329,1421,576],{"class":464},[329,1423,1424],{"class":821}," 3",[329,1426,535],{"class":464},[329,1428,1429],{"class":572}," total",[329,1431,576],{"class":464},[329,1433,1434],{"class":821}," 9999",[329,1436,472],{"class":464},[329,1438,472],{"class":464},[329,1440,602],{"class":572},[329,1442,1443],{"class":331,"line":363},[329,1444,342],{"emptyLinePlaceholder":341},[329,1446,1447,1450,1452,1454],{"class":331,"line":369},[329,1448,1449],{"class":460},"  throw",[329,1451,1325],{"class":560},[329,1453,564],{"class":572},[329,1455,567],{"class":464},[329,1457,1458,1461,1463,1465,1468,1470],{"class":331,"line":375},[329,1459,1460],{"class":572},"    message",[329,1462,576],{"class":464},[329,1464,478],{"class":464},[329,1466,1467],{"class":433},"Payment failed",[329,1469,591],{"class":464},[329,1471,1472],{"class":464},",\n",[329,1474,1475,1478,1480,1483],{"class":331,"line":381},[329,1476,1477],{"class":572},"    status",[329,1479,576],{"class":464},[329,1481,1482],{"class":821}," 402",[329,1484,1472],{"class":464},[329,1486,1487,1490,1492,1494,1497,1499],{"class":331,"line":387},[329,1488,1489],{"class":572},"    why",[329,1491,576],{"class":464},[329,1493,478],{"class":464},[329,1495,1496],{"class":433},"Card declined by issuer",[329,1498,591],{"class":464},[329,1500,1472],{"class":464},[329,1502,1503,1506,1508,1510,1513,1515],{"class":331,"line":393},[329,1504,1505],{"class":572},"    fix",[329,1507,576],{"class":464},[329,1509,478],{"class":464},[329,1511,1512],{"class":433},"Try a different payment method",[329,1514,591],{"class":464},[329,1516,1472],{"class":464},[329,1518,1519,1522,1524,1526,1529,1531],{"class":331,"line":398},[329,1520,1521],{"class":572},"    link",[329,1523,576],{"class":464},[329,1525,478],{"class":464},[329,1527,1528],{"class":433},"https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined",[329,1530,591],{"class":464},[329,1532,1472],{"class":464},[329,1534,1535,1538],{"class":331,"line":404},[329,1536,1537],{"class":464},"  }",[329,1539,602],{"class":572},[329,1541,1542,1544],{"class":331,"line":664},[329,1543,599],{"class":464},[329,1545,602],{"class":468},[303,1547,1548,1549,1552],{},"Handle errors globally with ",[307,1550,1551],{},"app.onError"," to return structured JSON responses:",[319,1554,1556],{"className":450,"code":1555,"filename":452,"language":453,"meta":325,"style":325},"import type { ContentfulStatusCode } from 'hono\u002Futils\u002Fhttp-status'\n\napp.onError((error, c) => {\n  c.get('log').error(error)\n  const parsed = parseError(error)\n\n  return c.json(\n    {\n      message: parsed.message,\n      why: parsed.why,\n      fix: parsed.fix,\n      link: parsed.link,\n    },\n    parsed.status as ContentfulStatusCode,\n  )\n})\n",[307,1557,1558,1580,1584,1610,1638,1655,1659,1672,1677,1693,1708,1723,1738,1743,1760,1765],{"__ignoreMap":325},[329,1559,1560,1562,1564,1566,1569,1571,1573,1575,1578],{"class":331,"line":332},[329,1561,461],{"class":460},[329,1563,538],{"class":460},[329,1565,465],{"class":464},[329,1567,1568],{"class":468}," ContentfulStatusCode",[329,1570,472],{"class":464},[329,1572,475],{"class":460},[329,1574,478],{"class":464},[329,1576,1577],{"class":433},"hono\u002Futils\u002Fhttp-status",[329,1579,484],{"class":464},[329,1581,1582],{"class":331,"line":338},[329,1583,342],{"emptyLinePlaceholder":341},[329,1585,1586,1588,1590,1593,1595,1597,1600,1602,1604,1606,1608],{"class":331,"line":345},[329,1587,644],{"class":468},[329,1589,647],{"class":464},[329,1591,1592],{"class":560},"onError",[329,1594,564],{"class":468},[329,1596,564],{"class":464},[329,1598,1599],{"class":688},"error",[329,1601,535],{"class":464},[329,1603,754],{"class":688},[329,1605,692],{"class":464},[329,1607,695],{"class":611},[329,1609,698],{"class":464},[329,1611,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636],{"class":331,"line":351},[329,1613,704],{"class":468},[329,1615,647],{"class":464},[329,1617,671],{"class":560},[329,1619,564],{"class":572},[329,1621,591],{"class":464},[329,1623,715],{"class":433},[329,1625,591],{"class":464},[329,1627,692],{"class":572},[329,1629,647],{"class":464},[329,1631,1599],{"class":560},[329,1633,564],{"class":572},[329,1635,1599],{"class":468},[329,1637,602],{"class":572},[329,1639,1640,1642,1645,1647,1649,1651,1653],{"class":331,"line":357},[329,1641,907],{"class":611},[329,1643,1644],{"class":468}," parsed",[329,1646,913],{"class":464},[329,1648,1330],{"class":560},[329,1650,564],{"class":572},[329,1652,1599],{"class":468},[329,1654,602],{"class":572},[329,1656,1657],{"class":331,"line":363},[329,1658,342],{"emptyLinePlaceholder":341},[329,1660,1661,1663,1665,1667,1669],{"class":331,"line":369},[329,1662,751],{"class":460},[329,1664,754],{"class":468},[329,1666,647],{"class":464},[329,1668,759],{"class":560},[329,1670,1671],{"class":572},"(\n",[329,1673,1674],{"class":331,"line":375},[329,1675,1676],{"class":464},"    {\n",[329,1678,1679,1682,1684,1686,1688,1691],{"class":331,"line":381},[329,1680,1681],{"class":572},"      message",[329,1683,576],{"class":464},[329,1685,1644],{"class":468},[329,1687,647],{"class":464},[329,1689,1690],{"class":468},"message",[329,1692,1472],{"class":464},[329,1694,1695,1698,1700,1702,1704,1706],{"class":331,"line":387},[329,1696,1697],{"class":572},"      why",[329,1699,576],{"class":464},[329,1701,1644],{"class":468},[329,1703,647],{"class":464},[329,1705,1302],{"class":468},[329,1707,1472],{"class":464},[329,1709,1710,1713,1715,1717,1719,1721],{"class":331,"line":393},[329,1711,1712],{"class":572},"      fix",[329,1714,576],{"class":464},[329,1716,1644],{"class":468},[329,1718,647],{"class":464},[329,1720,1306],{"class":468},[329,1722,1472],{"class":464},[329,1724,1725,1728,1730,1732,1734,1736],{"class":331,"line":398},[329,1726,1727],{"class":572},"      link",[329,1729,576],{"class":464},[329,1731,1644],{"class":468},[329,1733,647],{"class":464},[329,1735,1310],{"class":468},[329,1737,1472],{"class":464},[329,1739,1740],{"class":331,"line":404},[329,1741,1742],{"class":464},"    },\n",[329,1744,1745,1748,1750,1753,1756,1758],{"class":331,"line":664},[329,1746,1747],{"class":468},"    parsed",[329,1749,647],{"class":464},[329,1751,1752],{"class":468},"status",[329,1754,1755],{"class":460}," as",[329,1757,1568],{"class":429},[329,1759,1472],{"class":464},[329,1761,1762],{"class":331,"line":701},[329,1763,1764],{"class":572},"  )\n",[329,1766,1767,1769],{"class":331,"line":748},[329,1768,599],{"class":464},[329,1770,602],{"class":468},[303,1772,1773,1776,1777,1779,1780,1783,1784,1787,1788,1791],{},[307,1774,1775],{},"parseError()"," types ",[307,1778,1752],{}," as a ",[307,1781,1782],{},"number",", while Hono’s ",[307,1785,1786],{},"c.json()"," second argument expects ",[307,1789,1790],{},"ContentfulStatusCode",". The cast matches what you already return at runtime and satisfies TypeScript.",[303,1793,1794],{},"The error is captured and logged with both the custom context and structured error fields:",[319,1796,1798],{"className":419,"code":1797,"filename":1201,"language":422,"meta":325,"style":325},"14:58:20 ERROR [my-api] GET \u002Fcheckout 402 in 3ms\n  ├─ error: name=EvlogError message=Payment failed status=402\n  ├─ cart: items=3 total=9999\n  └─ requestId: 880a50ac-...\n",[307,1799,1800,1811,1833,1852],{"__ignoreMap":325},[329,1801,1802,1805,1808],{"class":331,"line":332},[329,1803,1804],{"class":429},"14:58:20",[329,1806,1807],{"class":433}," ERROR",[329,1809,1810],{"class":468}," [my-api] GET \u002Fcheckout 402 in 3ms\n",[329,1812,1813,1815,1818,1821,1824,1827,1830],{"class":331,"line":338},[329,1814,1219],{"class":429},[329,1816,1817],{"class":433}," error:",[329,1819,1820],{"class":433}," name=EvlogError",[329,1822,1823],{"class":433}," message=Payment",[329,1825,1826],{"class":433}," failed",[329,1828,1829],{"class":433}," status=",[329,1831,1832],{"class":821},"402\n",[329,1834,1835,1837,1840,1843,1846,1849],{"class":331,"line":345},[329,1836,1219],{"class":429},[329,1838,1839],{"class":433}," cart:",[329,1841,1842],{"class":433}," items=",[329,1844,1845],{"class":821},"3",[329,1847,1848],{"class":433}," total=",[329,1850,1851],{"class":821},"9999\n",[329,1853,1854,1856,1858],{"class":331,"line":351},[329,1855,1255],{"class":429},[329,1857,1258],{"class":433},[329,1859,1860],{"class":433}," 880a50ac-...\n",[409,1862,81],{"id":1863},"configuration",[303,1865,1866,1867,1870,1871,1873],{},"See the ",[837,1868,1869],{"href":82},"Configuration reference"," for all available options (",[307,1872,561],{},", middleware options, sampling, silent mode, etc.).",[409,1875,1877],{"id":1876},"drain-enrichers","Drain & Enrichers",[303,1879,1880],{},"Configure drain adapters and enrichers directly in the middleware options:",[319,1882,1884],{"className":450,"code":1883,"filename":452,"language":453,"meta":325,"style":325},"import { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createUserAgentEnricher } from 'evlog\u002Fenrichers'\n\nconst userAgent = createUserAgentEnricher()\n\napp.use(evlog({\n  drain: createAxiomDrain(),\n  enrich: (ctx) => {\n    userAgent(ctx)\n    ctx.event.region = process.env.FLY_REGION\n  },\n}))\n",[307,1885,1886,1906,1926,1930,1943,1947,1963,1977,1995,2006,2036,2041],{"__ignoreMap":325},[329,1887,1888,1890,1892,1895,1897,1899,1901,1904],{"class":331,"line":332},[329,1889,461],{"class":460},[329,1891,465],{"class":464},[329,1893,1894],{"class":468}," createAxiomDrain",[329,1896,472],{"class":464},[329,1898,475],{"class":460},[329,1900,478],{"class":464},[329,1902,1903],{"class":433},"evlog\u002Faxiom",[329,1905,484],{"class":464},[329,1907,1908,1910,1912,1915,1917,1919,1921,1924],{"class":331,"line":338},[329,1909,461],{"class":460},[329,1911,465],{"class":464},[329,1913,1914],{"class":468}," createUserAgentEnricher",[329,1916,472],{"class":464},[329,1918,475],{"class":460},[329,1920,478],{"class":464},[329,1922,1923],{"class":433},"evlog\u002Fenrichers",[329,1925,484],{"class":464},[329,1927,1928],{"class":331,"line":345},[329,1929,342],{"emptyLinePlaceholder":341},[329,1931,1932,1934,1937,1939,1941],{"class":331,"line":351},[329,1933,612],{"class":611},[329,1935,1936],{"class":468}," userAgent ",[329,1938,618],{"class":464},[329,1940,1914],{"class":560},[329,1942,635],{"class":468},[329,1944,1945],{"class":331,"line":357},[329,1946,342],{"emptyLinePlaceholder":341},[329,1948,1949,1951,1953,1955,1957,1959,1961],{"class":331,"line":363},[329,1950,644],{"class":468},[329,1952,647],{"class":464},[329,1954,650],{"class":560},[329,1956,564],{"class":468},[329,1958,522],{"class":560},[329,1960,564],{"class":468},[329,1962,567],{"class":464},[329,1964,1965,1968,1970,1972,1975],{"class":331,"line":369},[329,1966,1967],{"class":572},"  drain",[329,1969,576],{"class":464},[329,1971,1894],{"class":560},[329,1973,1974],{"class":468},"()",[329,1976,1472],{"class":464},[329,1978,1979,1982,1984,1986,1989,1991,1993],{"class":331,"line":375},[329,1980,1981],{"class":560},"  enrich",[329,1983,576],{"class":464},[329,1985,685],{"class":464},[329,1987,1988],{"class":688},"ctx",[329,1990,692],{"class":464},[329,1992,695],{"class":611},[329,1994,698],{"class":464},[329,1996,1997,2000,2002,2004],{"class":331,"line":381},[329,1998,1999],{"class":560},"    userAgent",[329,2001,564],{"class":572},[329,2003,1988],{"class":468},[329,2005,602],{"class":572},[329,2007,2008,2011,2013,2016,2018,2021,2023,2026,2028,2031,2033],{"class":331,"line":387},[329,2009,2010],{"class":468},"    ctx",[329,2012,647],{"class":464},[329,2014,2015],{"class":468},"event",[329,2017,647],{"class":464},[329,2019,2020],{"class":468},"region",[329,2022,913],{"class":464},[329,2024,2025],{"class":468}," process",[329,2027,647],{"class":464},[329,2029,2030],{"class":468},"env",[329,2032,647],{"class":464},[329,2034,2035],{"class":468},"FLY_REGION\n",[329,2037,2038],{"class":331,"line":393},[329,2039,2040],{"class":464},"  },\n",[329,2042,2043,2045],{"class":331,"line":398},[329,2044,599],{"class":464},[329,2046,2047],{"class":468},"))\n",[413,2049,2051],{"id":2050},"pipeline-batching-retry","Pipeline (Batching & Retry)",[303,2053,2054,2055,2058],{},"For production, wrap your adapter with ",[307,2056,2057],{},"createDrainPipeline"," to batch events and retry on failure:",[319,2060,2062],{"className":450,"code":2061,"filename":452,"language":453,"meta":325,"style":325},"import type { DrainContext } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n  retry: { maxAttempts: 3 },\n})\nconst drain = pipeline(createAxiomDrain())\n\napp.use(evlog({ drain }))\n",[307,2063,2064,2085,2103,2123,2127,2149,2178,2196,2202,2221,2225],{"__ignoreMap":325},[329,2065,2066,2068,2070,2072,2075,2077,2079,2081,2083],{"class":331,"line":332},[329,2067,461],{"class":460},[329,2069,538],{"class":460},[329,2071,465],{"class":464},[329,2073,2074],{"class":468}," DrainContext",[329,2076,472],{"class":464},[329,2078,475],{"class":460},[329,2080,478],{"class":464},[329,2082,522],{"class":433},[329,2084,484],{"class":464},[329,2086,2087,2089,2091,2093,2095,2097,2099,2101],{"class":331,"line":338},[329,2088,461],{"class":460},[329,2090,465],{"class":464},[329,2092,1894],{"class":468},[329,2094,472],{"class":464},[329,2096,475],{"class":460},[329,2098,478],{"class":464},[329,2100,1903],{"class":433},[329,2102,484],{"class":464},[329,2104,2105,2107,2109,2112,2114,2116,2118,2121],{"class":331,"line":345},[329,2106,461],{"class":460},[329,2108,465],{"class":464},[329,2110,2111],{"class":468}," createDrainPipeline",[329,2113,472],{"class":464},[329,2115,475],{"class":460},[329,2117,478],{"class":464},[329,2119,2120],{"class":433},"evlog\u002Fpipeline",[329,2122,484],{"class":464},[329,2124,2125],{"class":331,"line":351},[329,2126,342],{"emptyLinePlaceholder":341},[329,2128,2129,2131,2134,2136,2138,2140,2143,2145,2147],{"class":331,"line":357},[329,2130,612],{"class":611},[329,2132,2133],{"class":468}," pipeline ",[329,2135,618],{"class":464},[329,2137,2111],{"class":560},[329,2139,626],{"class":464},[329,2141,2142],{"class":429},"DrainContext",[329,2144,632],{"class":464},[329,2146,564],{"class":468},[329,2148,567],{"class":464},[329,2150,2151,2154,2156,2158,2161,2163,2166,2168,2171,2173,2176],{"class":331,"line":363},[329,2152,2153],{"class":572},"  batch",[329,2155,576],{"class":464},[329,2157,465],{"class":464},[329,2159,2160],{"class":572}," size",[329,2162,576],{"class":464},[329,2164,2165],{"class":821}," 50",[329,2167,535],{"class":464},[329,2169,2170],{"class":572}," intervalMs",[329,2172,576],{"class":464},[329,2174,2175],{"class":821}," 5000",[329,2177,594],{"class":464},[329,2179,2180,2183,2185,2187,2190,2192,2194],{"class":331,"line":369},[329,2181,2182],{"class":572},"  retry",[329,2184,576],{"class":464},[329,2186,465],{"class":464},[329,2188,2189],{"class":572}," maxAttempts",[329,2191,576],{"class":464},[329,2193,1424],{"class":821},[329,2195,594],{"class":464},[329,2197,2198,2200],{"class":331,"line":375},[329,2199,599],{"class":464},[329,2201,602],{"class":468},[329,2203,2204,2206,2209,2211,2214,2216,2219],{"class":331,"line":381},[329,2205,612],{"class":611},[329,2207,2208],{"class":468}," drain ",[329,2210,618],{"class":464},[329,2212,2213],{"class":560}," pipeline",[329,2215,564],{"class":468},[329,2217,2218],{"class":560},"createAxiomDrain",[329,2220,657],{"class":468},[329,2222,2223],{"class":331,"line":387},[329,2224,342],{"emptyLinePlaceholder":341},[329,2226,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245],{"class":331,"line":393},[329,2228,644],{"class":468},[329,2230,647],{"class":464},[329,2232,650],{"class":560},[329,2234,564],{"class":468},[329,2236,522],{"class":560},[329,2238,564],{"class":468},[329,2240,729],{"class":464},[329,2242,2208],{"class":468},[329,2244,599],{"class":464},[329,2246,2047],{"class":468},[828,2248,2249,2250,2253,2254,2257],{"color":830,"icon":13},"Call ",[307,2251,2252],{},"drain.flush()"," on server shutdown to ensure all buffered events are sent. See the ",[837,2255,2256],{"href":219},"Pipeline docs"," for all options.",[409,2259,2261],{"id":2260},"tail-sampling","Tail Sampling",[303,2263,1295,2264,2267],{},[307,2265,2266],{},"keep"," to force-retain specific events regardless of head sampling:",[319,2269,2271],{"className":450,"code":2270,"filename":452,"language":453,"meta":325,"style":325},"app.use(evlog({\n  drain: createAxiomDrain(),\n  keep: (ctx) => {\n    if (ctx.duration && ctx.duration > 2000) ctx.shouldKeep = true\n  },\n}))\n",[307,2272,2273,2289,2301,2318,2362,2366],{"__ignoreMap":325},[329,2274,2275,2277,2279,2281,2283,2285,2287],{"class":331,"line":332},[329,2276,644],{"class":468},[329,2278,647],{"class":464},[329,2280,650],{"class":560},[329,2282,564],{"class":468},[329,2284,522],{"class":560},[329,2286,564],{"class":468},[329,2288,567],{"class":464},[329,2290,2291,2293,2295,2297,2299],{"class":331,"line":338},[329,2292,1967],{"class":572},[329,2294,576],{"class":464},[329,2296,1894],{"class":560},[329,2298,1974],{"class":468},[329,2300,1472],{"class":464},[329,2302,2303,2306,2308,2310,2312,2314,2316],{"class":331,"line":345},[329,2304,2305],{"class":560},"  keep",[329,2307,576],{"class":464},[329,2309,685],{"class":464},[329,2311,1988],{"class":688},[329,2313,692],{"class":464},[329,2315,695],{"class":611},[329,2317,698],{"class":464},[329,2319,2320,2323,2325,2327,2329,2332,2335,2338,2340,2342,2345,2348,2350,2352,2354,2357,2359],{"class":331,"line":351},[329,2321,2322],{"class":460},"    if",[329,2324,685],{"class":572},[329,2326,1988],{"class":468},[329,2328,647],{"class":464},[329,2330,2331],{"class":468},"duration",[329,2333,2334],{"class":464}," &&",[329,2336,2337],{"class":468}," ctx",[329,2339,647],{"class":464},[329,2341,2331],{"class":468},[329,2343,2344],{"class":464}," >",[329,2346,2347],{"class":821}," 2000",[329,2349,1154],{"class":572},[329,2351,1988],{"class":468},[329,2353,647],{"class":464},[329,2355,2356],{"class":468},"shouldKeep",[329,2358,913],{"class":464},[329,2360,2361],{"class":771}," true\n",[329,2363,2364],{"class":331,"line":357},[329,2365,2040],{"class":464},[329,2367,2368,2370],{"class":331,"line":363},[329,2369,599],{"class":464},[329,2371,2047],{"class":468},[409,2373,2375],{"id":2374},"route-filtering","Route Filtering",[303,2377,2378,2379,2382,2383,2386],{},"Control which routes are logged with ",[307,2380,2381],{},"include"," and ",[307,2384,2385],{},"exclude"," patterns:",[319,2388,2390],{"className":450,"code":2389,"filename":452,"language":453,"meta":325,"style":325},"app.use(evlog({\n  include: ['\u002Fapi\u002F**'],\n  exclude: ['\u002F_internal\u002F**', '\u002Fhealth'],\n  routes: {\n    '\u002Fapi\u002Fauth\u002F**': { service: 'auth-service' },\n    '\u002Fapi\u002Fpayment\u002F**': { service: 'payment-service' },\n  },\n}))\n",[307,2391,2392,2408,2430,2458,2467,2494,2520,2524],{"__ignoreMap":325},[329,2393,2394,2396,2398,2400,2402,2404,2406],{"class":331,"line":332},[329,2395,644],{"class":468},[329,2397,647],{"class":464},[329,2399,650],{"class":560},[329,2401,564],{"class":468},[329,2403,522],{"class":560},[329,2405,564],{"class":468},[329,2407,567],{"class":464},[329,2409,2410,2413,2415,2418,2420,2423,2425,2428],{"class":331,"line":338},[329,2411,2412],{"class":572},"  include",[329,2414,576],{"class":464},[329,2416,2417],{"class":468}," [",[329,2419,591],{"class":464},[329,2421,2422],{"class":433},"\u002Fapi\u002F**",[329,2424,591],{"class":464},[329,2426,2427],{"class":468},"]",[329,2429,1472],{"class":464},[329,2431,2432,2435,2437,2439,2441,2444,2446,2448,2450,2452,2454,2456],{"class":331,"line":345},[329,2433,2434],{"class":572},"  exclude",[329,2436,576],{"class":464},[329,2438,2417],{"class":468},[329,2440,591],{"class":464},[329,2442,2443],{"class":433},"\u002F_internal\u002F**",[329,2445,591],{"class":464},[329,2447,535],{"class":464},[329,2449,478],{"class":464},[329,2451,678],{"class":433},[329,2453,591],{"class":464},[329,2455,2427],{"class":468},[329,2457,1472],{"class":464},[329,2459,2460,2463,2465],{"class":331,"line":351},[329,2461,2462],{"class":572},"  routes",[329,2464,576],{"class":464},[329,2466,698],{"class":464},[329,2468,2469,2472,2475,2477,2479,2481,2483,2485,2487,2490,2492],{"class":331,"line":357},[329,2470,2471],{"class":464},"    '",[329,2473,2474],{"class":572},"\u002Fapi\u002Fauth\u002F**",[329,2476,591],{"class":464},[329,2478,576],{"class":464},[329,2480,465],{"class":464},[329,2482,581],{"class":572},[329,2484,576],{"class":464},[329,2486,478],{"class":464},[329,2488,2489],{"class":433},"auth-service",[329,2491,591],{"class":464},[329,2493,594],{"class":464},[329,2495,2496,2498,2501,2503,2505,2507,2509,2511,2513,2516,2518],{"class":331,"line":363},[329,2497,2471],{"class":464},[329,2499,2500],{"class":572},"\u002Fapi\u002Fpayment\u002F**",[329,2502,591],{"class":464},[329,2504,576],{"class":464},[329,2506,465],{"class":464},[329,2508,581],{"class":572},[329,2510,576],{"class":464},[329,2512,478],{"class":464},[329,2514,2515],{"class":433},"payment-service",[329,2517,591],{"class":464},[329,2519,594],{"class":464},[329,2521,2522],{"class":331,"line":369},[329,2523,2040],{"class":464},[329,2525,2526,2528],{"class":331,"line":375},[329,2527,599],{"class":464},[329,2529,2047],{"class":468},[409,2531,2533],{"id":2532},"client-side-logging","Client-Side Logging",[303,2535,1295,2536,2539],{},[307,2537,2538],{},"evlog\u002Fhttp"," to send structured logs from any frontend to your Hono server. This works with any client framework (React, Vue, Svelte, vanilla JS).",[413,2541,2543],{"id":2542},"browser-setup","Browser setup",[319,2545,2548],{"className":450,"code":2546,"filename":2547,"language":453,"meta":325,"style":325},"import { initLogger, log } from 'evlog'\nimport { createHttpLogDrain } from 'evlog\u002Fhttp'\n\nconst drain = createHttpLogDrain({\n  drain: { endpoint: '\u002Fv1\u002Fingest' },\n})\ninitLogger({ drain })\n\nlog.info({ action: 'page_view', path: location.pathname })\n","client.ts",[307,2549,2550,2572,2591,2595,2609,2631,2637,2651,2655],{"__ignoreMap":325},[329,2551,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570],{"class":331,"line":332},[329,2553,461],{"class":460},[329,2555,465],{"class":464},[329,2557,513],{"class":468},[329,2559,535],{"class":464},[329,2561,910],{"class":468},[329,2563,472],{"class":464},[329,2565,475],{"class":460},[329,2567,478],{"class":464},[329,2569,522],{"class":433},[329,2571,484],{"class":464},[329,2573,2574,2576,2578,2581,2583,2585,2587,2589],{"class":331,"line":338},[329,2575,461],{"class":460},[329,2577,465],{"class":464},[329,2579,2580],{"class":468}," createHttpLogDrain",[329,2582,472],{"class":464},[329,2584,475],{"class":460},[329,2586,478],{"class":464},[329,2588,2538],{"class":433},[329,2590,484],{"class":464},[329,2592,2593],{"class":331,"line":345},[329,2594,342],{"emptyLinePlaceholder":341},[329,2596,2597,2599,2601,2603,2605,2607],{"class":331,"line":351},[329,2598,612],{"class":611},[329,2600,2208],{"class":468},[329,2602,618],{"class":464},[329,2604,2580],{"class":560},[329,2606,564],{"class":468},[329,2608,567],{"class":464},[329,2610,2611,2613,2615,2617,2620,2622,2624,2627,2629],{"class":331,"line":357},[329,2612,1967],{"class":572},[329,2614,576],{"class":464},[329,2616,465],{"class":464},[329,2618,2619],{"class":572}," endpoint",[329,2621,576],{"class":464},[329,2623,478],{"class":464},[329,2625,2626],{"class":433},"\u002Fv1\u002Fingest",[329,2628,591],{"class":464},[329,2630,594],{"class":464},[329,2632,2633,2635],{"class":331,"line":363},[329,2634,599],{"class":464},[329,2636,602],{"class":468},[329,2638,2639,2641,2643,2645,2647,2649],{"class":331,"line":369},[329,2640,561],{"class":560},[329,2642,564],{"class":468},[329,2644,729],{"class":464},[329,2646,2208],{"class":468},[329,2648,599],{"class":464},[329,2650,602],{"class":468},[329,2652,2653],{"class":331,"line":375},[329,2654,342],{"emptyLinePlaceholder":341},[329,2656,2657,2659,2661,2663,2665,2667,2670,2672,2674,2677,2679,2681,2684,2686,2689,2691,2694,2696],{"class":331,"line":381},[329,2658,715],{"class":468},[329,2660,647],{"class":464},[329,2662,830],{"class":560},[329,2664,564],{"class":468},[329,2666,729],{"class":464},[329,2668,2669],{"class":572}," action",[329,2671,576],{"class":464},[329,2673,478],{"class":464},[329,2675,2676],{"class":433},"page_view",[329,2678,591],{"class":464},[329,2680,535],{"class":464},[329,2682,2683],{"class":572}," path",[329,2685,576],{"class":464},[329,2687,2688],{"class":468}," location",[329,2690,647],{"class":464},[329,2692,2693],{"class":468},"pathname ",[329,2695,599],{"class":464},[329,2697,602],{"class":468},[413,2699,2701],{"id":2700},"ingest-endpoint","Ingest endpoint",[303,2703,2704,2705,2708],{},"Add a POST route to receive batched ",[307,2706,2707],{},"DrainContext[]"," from the browser:",[319,2710,2712],{"className":450,"code":2711,"filename":452,"language":453,"meta":325,"style":325},"import type { DrainContext } from 'evlog'\n\napp.post('\u002Fv1\u002Fingest', async (c) => {\n  const batch = await c.req.json\u003CDrainContext[]>()\n  for (const ctx of batch) {\n    console.log('[BROWSER]', JSON.stringify(ctx.event))\n  }\n  return c.body(null, 204)\n})\n",[307,2713,2714,2734,2738,2769,2801,2821,2859,2864,2885],{"__ignoreMap":325},[329,2715,2716,2718,2720,2722,2724,2726,2728,2730,2732],{"class":331,"line":332},[329,2717,461],{"class":460},[329,2719,538],{"class":460},[329,2721,465],{"class":464},[329,2723,2074],{"class":468},[329,2725,472],{"class":464},[329,2727,475],{"class":460},[329,2729,478],{"class":464},[329,2731,522],{"class":433},[329,2733,484],{"class":464},[329,2735,2736],{"class":331,"line":338},[329,2737,342],{"emptyLinePlaceholder":341},[329,2739,2740,2742,2744,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767],{"class":331,"line":345},[329,2741,644],{"class":468},[329,2743,647],{"class":464},[329,2745,2746],{"class":560},"post",[329,2748,564],{"class":468},[329,2750,591],{"class":464},[329,2752,2626],{"class":433},[329,2754,591],{"class":464},[329,2756,535],{"class":464},[329,2758,892],{"class":611},[329,2760,685],{"class":464},[329,2762,689],{"class":688},[329,2764,692],{"class":464},[329,2766,695],{"class":611},[329,2768,698],{"class":464},[329,2770,2771,2773,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2797,2799],{"class":331,"line":351},[329,2772,907],{"class":611},[329,2774,2775],{"class":468}," batch",[329,2777,913],{"class":464},[329,2779,1013],{"class":460},[329,2781,754],{"class":468},[329,2783,647],{"class":464},[329,2785,945],{"class":468},[329,2787,647],{"class":464},[329,2789,759],{"class":560},[329,2791,626],{"class":464},[329,2793,2142],{"class":429},[329,2795,2796],{"class":572},"[]",[329,2798,632],{"class":464},[329,2800,635],{"class":572},[329,2802,2803,2806,2808,2810,2812,2815,2817,2819],{"class":331,"line":357},[329,2804,2805],{"class":460},"  for",[329,2807,685],{"class":572},[329,2809,612],{"class":611},[329,2811,2337],{"class":468},[329,2813,2814],{"class":464}," of",[329,2816,2775],{"class":468},[329,2818,1154],{"class":572},[329,2820,567],{"class":464},[329,2822,2823,2826,2828,2830,2832,2834,2837,2839,2841,2844,2846,2849,2851,2853,2855,2857],{"class":331,"line":363},[329,2824,2825],{"class":468},"    console",[329,2827,647],{"class":464},[329,2829,715],{"class":560},[329,2831,564],{"class":572},[329,2833,591],{"class":464},[329,2835,2836],{"class":433},"[BROWSER]",[329,2838,591],{"class":464},[329,2840,535],{"class":464},[329,2842,2843],{"class":468}," JSON",[329,2845,647],{"class":464},[329,2847,2848],{"class":560},"stringify",[329,2850,564],{"class":572},[329,2852,1988],{"class":468},[329,2854,647],{"class":464},[329,2856,2015],{"class":468},[329,2858,2047],{"class":572},[329,2860,2861],{"class":331,"line":369},[329,2862,2863],{"class":464},"  }\n",[329,2865,2866,2868,2870,2872,2875,2877,2880,2883],{"class":331,"line":375},[329,2867,751],{"class":460},[329,2869,754],{"class":468},[329,2871,647],{"class":464},[329,2873,2874],{"class":560},"body",[329,2876,564],{"class":572},[329,2878,2879],{"class":464},"null,",[329,2881,2882],{"class":821}," 204",[329,2884,602],{"class":572},[329,2886,2887,2889],{"class":331,"line":381},[329,2888,599],{"class":464},[329,2890,602],{"class":468},[828,2892,2894,2895,2898],{"color":2893,"icon":226},"neutral","See the full ",[837,2896,2897],{"href":224},"HTTP drain"," adapter docs for batching, retry, sendBeacon fallback, and authentication options.",[409,2900,2902],{"id":2901},"run-locally","Run Locally",[319,2904,2906],{"className":419,"code":2905,"filename":421,"language":422,"meta":325,"style":325},"git clone https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog.git\ncd evlog\nbun install\nbun run example:hono\n",[307,2907,2908,2919,2927,2934],{"__ignoreMap":325},[329,2909,2910,2913,2916],{"class":331,"line":332},[329,2911,2912],{"class":429},"git",[329,2914,2915],{"class":433}," clone",[329,2917,2918],{"class":433}," https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog.git\n",[329,2920,2921,2924],{"class":331,"line":338},[329,2922,2923],{"class":560},"cd",[329,2925,2926],{"class":433}," evlog\n",[329,2928,2929,2931],{"class":331,"line":345},[329,2930,430],{"class":429},[329,2932,2933],{"class":433}," install\n",[329,2935,2936,2938,2941],{"class":331,"line":351},[329,2937,430],{"class":429},[329,2939,2940],{"class":433}," run",[329,2942,2943],{"class":433}," example:hono\n",[303,2945,2946,2947,2952],{},"Open ",[837,2948,2949],{"href":2949,"rel":2950},"http:\u002F\u002Flocalhost:3000",[2951],"nofollow"," to explore the interactive test UI.",[2954,2955,2956],"card-group",{},[2957,2958,2962],"card",{"icon":2959,"title":2960,"to":2961},"i-simple-icons-github","Source Code","https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog\u002Ftree\u002Fmain\u002Fexamples\u002Fhono","Browse the complete Hono example source on GitHub.",[409,2964,2966],{"id":2965},"next-steps","Next Steps",[303,2968,2969,2970,2972],{},"Deepen your ",[832,2971,160],{}," integration:",[2974,2975,2976,2982,2987,2992],"ul",{},[2977,2978,2979,2981],"li",{},[837,2980,46],{"href":47},": Design comprehensive events with context layering",[2977,2983,2984,2986],{},[837,2985,204],{"href":209},": Send logs to Axiom, Sentry, PostHog, and more",[2977,2988,2989,2991],{},[837,2990,86],{"href":87},": Control log volume with head and tail sampling",[2977,2993,2994,2996,2997,1303,2999,1307,3001,3003],{},[837,2995,51],{"href":52},": Throw errors with ",[307,2998,1302],{},[307,3000,1306],{},[307,3002,1310],{}," fields",[3005,3006,3007],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":325,"searchDepth":338,"depth":338,"links":3009},[3010,3014,3015,3016,3017,3020,3021,3022,3026,3027],{"id":411,"depth":338,"text":20,"children":3011},[3012,3013],{"id":415,"depth":345,"text":416},{"id":446,"depth":345,"text":447},{"id":862,"depth":338,"text":46},{"id":1291,"depth":338,"text":1292},{"id":1863,"depth":338,"text":81},{"id":1876,"depth":338,"text":1877,"children":3018},[3019],{"id":2050,"depth":345,"text":2051},{"id":2260,"depth":338,"text":2261},{"id":2374,"depth":338,"text":2375},{"id":2532,"depth":338,"text":2533,"children":3023},[3024,3025],{"id":2542,"depth":345,"text":2543},{"id":2700,"depth":345,"text":2701},{"id":2901,"depth":338,"text":2902},{"id":2965,"depth":338,"text":2966},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Hono applications.","md",[3031],{"label":2960,"icon":2959,"to":2961,"color":2893,"variant":3032},"subtle",{},{"title":160,"icon":163},{"title":160,"description":3028},"h3o8ehgaQ6of_FHgkdOCVpgSHMf9p0AkyfotLfXDlSg",[3038,3040],{"title":155,"path":156,"stem":157,"description":3039,"icon":158,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Express applications.",{"title":165,"path":166,"stem":167,"description":3041,"icon":168,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Fastify applications.",1776287860020]