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