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