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