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