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