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