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