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