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