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