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