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