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