[{"data":1,"prerenderedAt":6431},["ShallowReactive",2],{"navigation_docs":3,"-learn-wide-events":602,"-learn-wide-events-surround":6426},[4,35,85,138,318,479,538,577],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"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",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449,453],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"icon":455,"path":456,"stem":457,"children":458,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[459,462,467,472,475],{"title":41,"path":460,"stem":461,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":463,"path":464,"stem":465,"icon":466},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":468,"path":469,"stem":470,"icon":471},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":436,"path":473,"stem":474,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":415,"path":476,"stem":477,"icon":478},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":480,"path":481,"stem":482,"children":483,"page":34},"Extend","\u002Fextend","6.extend",[484,488,493,498,502,507,511,515,519,523,528,533],{"title":41,"path":485,"stem":486,"icon":487},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":489,"path":490,"stem":491,"icon":492},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":494,"path":495,"stem":496,"icon":497},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":499,"path":500,"stem":501,"icon":492},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":503,"path":504,"stem":505,"icon":506},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":508,"stem":509,"icon":510},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":512,"path":513,"stem":514,"icon":487},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":516,"path":517,"stem":518,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":520,"path":521,"stem":522,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":524,"path":525,"stem":526,"icon":527},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":529,"path":530,"stem":531,"icon":532},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":534,"path":535,"stem":536,"icon":537},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":539,"stem":540,"children":541,"page":34},"\u002Freference","7.reference",[542,546,551,554,559,563,568,572],{"title":41,"path":543,"stem":544,"icon":545},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":547,"path":548,"stem":549,"icon":550},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":552,"stem":553,"icon":112},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":555,"path":556,"stem":557,"icon":558},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":560,"path":561,"stem":562,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":564,"path":565,"stem":566,"icon":567},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":569,"path":570,"stem":571,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":573,"path":574,"stem":575,"icon":576},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":578,"path":579,"stem":580,"children":581,"page":34},"Compare","\u002Fcompare","8.compare",[582,586,590,594,598],{"title":583,"path":584,"stem":585,"icon":567},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":587,"path":588,"stem":589,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":591,"path":592,"stem":593,"icon":567},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":595,"path":596,"stem":597,"icon":567},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":599,"path":600,"stem":601,"icon":567},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":603,"title":51,"body":604,"description":6416,"extension":6417,"links":6418,"meta":6422,"navigation":6423,"path":52,"seo":6424,"stem":53,"__hash__":6425},"docs\u002F2.learn\u002F2.wide-events.md",{"type":605,"value":606,"toc":6387},"minimark",[607,611,625,671,676,679,682,884,887,914,917,1416,1419,1423,1431,1438,1769,1776,1796,2005,2017,2024,2031,2991,2999,3003,3051,3070,3076,3101,3126,3133,3149,3156,3310,3314,3327,3331,3334,3532,3542,3546,3549,3638,3642,3645,3812,3816,3819,3995,3998,4002,4098,4102,4261,4265,4272,4669,4673,4676,5756,5923,5927,5951,6036,6057,6061,6064,6357,6361,6383],[608,609,610],"p",{},"Wide events are the core concept behind evlog. Instead of scattering logs throughout your codebase, you accumulate context over any unit of work, whether a request, script, job, or workflow, and emit a single, comprehensive log event.",[612,613,616,617,621,622,624],"callout",{"color":614,"icon":615},"neutral","i-lucide-globe","Not running an HTTP framework? See ",[618,619,620],"a",{"href":301},"Standalone TypeScript"," and ",[618,623,295],{"href":296},", because wide events apply just as cleanly outside of request lifecycles.",[626,627,630,633,658],"prompt",{":actions":628,"description":629,"icon":54},"[\"copy\",\"cursor\",\"claude\"]","Convert my request handlers to wide events",[608,631,632],{},"Convert my existing request handlers from scattered logs to evlog wide events.",[634,635,636,640,643,646,649,652,655],"ul",{},[637,638,639],"li",{},"Find handlers that call console.log\u002Flogger.info multiple times per request",[637,641,642],{},"Replace those with a single useLogger(event) (or framework equivalent) at the top",[637,644,645],{},"Use log.set({ user, cart, payment, ... }) to accumulate context as the request progresses",[637,647,648],{},"Group related fields into nested objects (user, cart, payment) instead of flat keys",[637,650,651],{},"Remove redundant info-level logs once the wide event captures the same information",[637,653,654],{},"Keep error logs that capture distinct failure cases via log.error()",[637,656,657],{},"Trust the framework integration to auto-emit one wide event per request",[608,659,660,661,666,667],{},"Docs: ",[618,662,663],{"href":663,"rel":664},"https:\u002F\u002Fwww.evlog.dev\u002Flearn\u002Fwide-events",[665],"nofollow","\nBest practices: ",[618,668,669],{"href":669,"rel":670},"https:\u002F\u002Fwww.evlog.dev\u002Freference\u002Fbest-practices",[665],[672,673,675],"h2",{"id":674},"why-wide-events","Why Wide Events?",[677,678],"wide-event-collapse",{},[608,680,681],{},"Traditional logging creates noise:",[683,684,690],"pre",{"className":685,"code":686,"filename":687,"language":688,"meta":689,"style":689},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","logger.info('Job started')\nlogger.info('User authenticated', { userId: user.id })\nlogger.info('Fetching data', { source: 'postgres' })\nlogger.info('Processing records')\nlogger.info('Processing complete')\nlogger.info('Job finished', { duration: 234 })\n","src\u002Fservice.ts","typescript","",[691,692,693,725,769,809,829,849],"code",{"__ignoreMap":689},[694,695,698,702,706,710,713,716,720,722],"span",{"class":696,"line":697},"line",1,[694,699,701],{"class":700},"sTEyZ","logger",[694,703,705],{"class":704},"sMK4o",".",[694,707,709],{"class":708},"s2Zo4","info",[694,711,712],{"class":700},"(",[694,714,715],{"class":704},"'",[694,717,719],{"class":718},"sfazB","Job started",[694,721,715],{"class":704},[694,723,724],{"class":700},")\n",[694,726,728,730,732,734,736,738,741,743,746,749,753,756,759,761,764,767],{"class":696,"line":727},2,[694,729,701],{"class":700},[694,731,705],{"class":704},[694,733,709],{"class":708},[694,735,712],{"class":700},[694,737,715],{"class":704},[694,739,740],{"class":718},"User authenticated",[694,742,715],{"class":704},[694,744,745],{"class":704},",",[694,747,748],{"class":704}," {",[694,750,752],{"class":751},"swJcz"," userId",[694,754,755],{"class":704},":",[694,757,758],{"class":700}," user",[694,760,705],{"class":704},[694,762,763],{"class":700},"id ",[694,765,766],{"class":704},"}",[694,768,724],{"class":700},[694,770,772,774,776,778,780,782,785,787,789,791,794,796,799,802,804,807],{"class":696,"line":771},3,[694,773,701],{"class":700},[694,775,705],{"class":704},[694,777,709],{"class":708},[694,779,712],{"class":700},[694,781,715],{"class":704},[694,783,784],{"class":718},"Fetching data",[694,786,715],{"class":704},[694,788,745],{"class":704},[694,790,748],{"class":704},[694,792,793],{"class":751}," source",[694,795,755],{"class":704},[694,797,798],{"class":704}," '",[694,800,801],{"class":718},"postgres",[694,803,715],{"class":704},[694,805,806],{"class":704}," }",[694,808,724],{"class":700},[694,810,812,814,816,818,820,822,825,827],{"class":696,"line":811},4,[694,813,701],{"class":700},[694,815,705],{"class":704},[694,817,709],{"class":708},[694,819,712],{"class":700},[694,821,715],{"class":704},[694,823,824],{"class":718},"Processing records",[694,826,715],{"class":704},[694,828,724],{"class":700},[694,830,832,834,836,838,840,842,845,847],{"class":696,"line":831},5,[694,833,701],{"class":700},[694,835,705],{"class":704},[694,837,709],{"class":708},[694,839,712],{"class":700},[694,841,715],{"class":704},[694,843,844],{"class":718},"Processing complete",[694,846,715],{"class":704},[694,848,724],{"class":700},[694,850,852,854,856,858,860,862,865,867,869,871,874,876,880,882],{"class":696,"line":851},6,[694,853,701],{"class":700},[694,855,705],{"class":704},[694,857,709],{"class":708},[694,859,712],{"class":700},[694,861,715],{"class":704},[694,863,864],{"class":718},"Job finished",[694,866,715],{"class":704},[694,868,745],{"class":704},[694,870,748],{"class":704},[694,872,873],{"class":751}," duration",[694,875,755],{"class":704},[694,877,879],{"class":878},"sbssI"," 234",[694,881,806],{"class":704},[694,883,724],{"class":700},[608,885,886],{},"This approach has problems:",[634,888,889,896,902,908],{},[637,890,891,895],{},[892,893,894],"strong",{},"Scattered context",": Information is spread across multiple log lines",[637,897,898,901],{},[892,899,900],{},"Hard to correlate",": Matching logs to operations requires IDs everywhere",[637,903,904,907],{},[892,905,906],{},"Noise",": 10+ log lines per operation makes finding issues harder",[637,909,910,913],{},[892,911,912],{},"Incomplete",": Some logs might be missing if errors occur",[608,915,916],{},"Wide events solve this:",[918,919,920,1130,1301],"code-group",{},[683,921,924],{"className":685,"code":922,"filename":923,"language":688,"meta":689,"style":689},"import { useLogger } from 'evlog'\n\nconst log = useLogger(event)\n\nlog.set({ user: { id: 1, plan: 'pro' } })\nlog.set({ cart: { id: 42, items: 3, total: 9999 } })\nlog.set({ payment: { method: 'card', status: 'success' } })\n","server\u002Fapi\u002Fcheckout.post.ts",[691,925,926,950,956,973,977,1026,1078],{"__ignoreMap":689},[694,927,928,932,934,937,939,942,944,947],{"class":696,"line":697},[694,929,931],{"class":930},"s7zQu","import",[694,933,748],{"class":704},[694,935,936],{"class":700}," useLogger",[694,938,806],{"class":704},[694,940,941],{"class":930}," from",[694,943,798],{"class":704},[694,945,946],{"class":718},"evlog",[694,948,949],{"class":704},"'\n",[694,951,952],{"class":696,"line":727},[694,953,955],{"emptyLinePlaceholder":954},true,"\n",[694,957,958,962,965,968,970],{"class":696,"line":771},[694,959,961],{"class":960},"spNyl","const",[694,963,964],{"class":700}," log ",[694,966,967],{"class":704},"=",[694,969,936],{"class":708},[694,971,972],{"class":700},"(event)\n",[694,974,975],{"class":696,"line":811},[694,976,955],{"emptyLinePlaceholder":954},[694,978,979,982,984,987,989,992,994,996,998,1001,1003,1006,1008,1011,1013,1015,1018,1020,1022,1024],{"class":696,"line":831},[694,980,981],{"class":700},"log",[694,983,705],{"class":704},[694,985,986],{"class":708},"set",[694,988,712],{"class":700},[694,990,991],{"class":704},"{",[694,993,758],{"class":751},[694,995,755],{"class":704},[694,997,748],{"class":704},[694,999,1000],{"class":751}," id",[694,1002,755],{"class":704},[694,1004,1005],{"class":878}," 1",[694,1007,745],{"class":704},[694,1009,1010],{"class":751}," plan",[694,1012,755],{"class":704},[694,1014,798],{"class":704},[694,1016,1017],{"class":718},"pro",[694,1019,715],{"class":704},[694,1021,806],{"class":704},[694,1023,806],{"class":704},[694,1025,724],{"class":700},[694,1027,1028,1030,1032,1034,1036,1038,1041,1043,1045,1047,1049,1052,1054,1057,1059,1062,1064,1067,1069,1072,1074,1076],{"class":696,"line":851},[694,1029,981],{"class":700},[694,1031,705],{"class":704},[694,1033,986],{"class":708},[694,1035,712],{"class":700},[694,1037,991],{"class":704},[694,1039,1040],{"class":751}," cart",[694,1042,755],{"class":704},[694,1044,748],{"class":704},[694,1046,1000],{"class":751},[694,1048,755],{"class":704},[694,1050,1051],{"class":878}," 42",[694,1053,745],{"class":704},[694,1055,1056],{"class":751}," items",[694,1058,755],{"class":704},[694,1060,1061],{"class":878}," 3",[694,1063,745],{"class":704},[694,1065,1066],{"class":751}," total",[694,1068,755],{"class":704},[694,1070,1071],{"class":878}," 9999",[694,1073,806],{"class":704},[694,1075,806],{"class":704},[694,1077,724],{"class":700},[694,1079,1081,1083,1085,1087,1089,1091,1094,1096,1098,1101,1103,1105,1108,1110,1112,1115,1117,1119,1122,1124,1126,1128],{"class":696,"line":1080},7,[694,1082,981],{"class":700},[694,1084,705],{"class":704},[694,1086,986],{"class":708},[694,1088,712],{"class":700},[694,1090,991],{"class":704},[694,1092,1093],{"class":751}," payment",[694,1095,755],{"class":704},[694,1097,748],{"class":704},[694,1099,1100],{"class":751}," method",[694,1102,755],{"class":704},[694,1104,798],{"class":704},[694,1106,1107],{"class":718},"card",[694,1109,715],{"class":704},[694,1111,745],{"class":704},[694,1113,1114],{"class":751}," status",[694,1116,755],{"class":704},[694,1118,798],{"class":704},[694,1120,1121],{"class":718},"success",[694,1123,715],{"class":704},[694,1125,806],{"class":704},[694,1127,806],{"class":704},[694,1129,724],{"class":700},[683,1131,1134],{"className":685,"code":1132,"filename":1133,"language":688,"meta":689,"style":689},"import { createLogger } from 'evlog'\n\nconst log = createLogger({ jobId: 'sync-001', queue: 'emails' })\n\nlog.set({ source: 'postgres', target: 's3' })\nlog.set({ records: { found: 1250, synced: 1250 } })\nlog.emit()\n","scripts\u002Fsync-data.ts",[691,1135,1136,1155,1159,1203,1207,1247,1289],{"__ignoreMap":689},[694,1137,1138,1140,1142,1145,1147,1149,1151,1153],{"class":696,"line":697},[694,1139,931],{"class":930},[694,1141,748],{"class":704},[694,1143,1144],{"class":700}," createLogger",[694,1146,806],{"class":704},[694,1148,941],{"class":930},[694,1150,798],{"class":704},[694,1152,946],{"class":718},[694,1154,949],{"class":704},[694,1156,1157],{"class":696,"line":727},[694,1158,955],{"emptyLinePlaceholder":954},[694,1160,1161,1163,1165,1167,1169,1171,1173,1176,1178,1180,1183,1185,1187,1190,1192,1194,1197,1199,1201],{"class":696,"line":771},[694,1162,961],{"class":960},[694,1164,964],{"class":700},[694,1166,967],{"class":704},[694,1168,1144],{"class":708},[694,1170,712],{"class":700},[694,1172,991],{"class":704},[694,1174,1175],{"class":751}," jobId",[694,1177,755],{"class":704},[694,1179,798],{"class":704},[694,1181,1182],{"class":718},"sync-001",[694,1184,715],{"class":704},[694,1186,745],{"class":704},[694,1188,1189],{"class":751}," queue",[694,1191,755],{"class":704},[694,1193,798],{"class":704},[694,1195,1196],{"class":718},"emails",[694,1198,715],{"class":704},[694,1200,806],{"class":704},[694,1202,724],{"class":700},[694,1204,1205],{"class":696,"line":811},[694,1206,955],{"emptyLinePlaceholder":954},[694,1208,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1234,1236,1238,1241,1243,1245],{"class":696,"line":831},[694,1210,981],{"class":700},[694,1212,705],{"class":704},[694,1214,986],{"class":708},[694,1216,712],{"class":700},[694,1218,991],{"class":704},[694,1220,793],{"class":751},[694,1222,755],{"class":704},[694,1224,798],{"class":704},[694,1226,801],{"class":718},[694,1228,715],{"class":704},[694,1230,745],{"class":704},[694,1232,1233],{"class":751}," target",[694,1235,755],{"class":704},[694,1237,798],{"class":704},[694,1239,1240],{"class":718},"s3",[694,1242,715],{"class":704},[694,1244,806],{"class":704},[694,1246,724],{"class":700},[694,1248,1249,1251,1253,1255,1257,1259,1262,1264,1266,1269,1271,1274,1276,1279,1281,1283,1285,1287],{"class":696,"line":851},[694,1250,981],{"class":700},[694,1252,705],{"class":704},[694,1254,986],{"class":708},[694,1256,712],{"class":700},[694,1258,991],{"class":704},[694,1260,1261],{"class":751}," records",[694,1263,755],{"class":704},[694,1265,748],{"class":704},[694,1267,1268],{"class":751}," found",[694,1270,755],{"class":704},[694,1272,1273],{"class":878}," 1250",[694,1275,745],{"class":704},[694,1277,1278],{"class":751}," synced",[694,1280,755],{"class":704},[694,1282,1273],{"class":878},[694,1284,806],{"class":704},[694,1286,806],{"class":704},[694,1288,724],{"class":700},[694,1290,1291,1293,1295,1298],{"class":696,"line":1080},[694,1292,981],{"class":700},[694,1294,705],{"class":704},[694,1296,1297],{"class":708},"emit",[694,1299,1300],{"class":700},"()\n",[683,1302,1307],{"className":1303,"code":1304,"filename":1305,"language":1306,"meta":689,"style":689},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[INFO] POST \u002Fapi\u002Fcheckout (234ms)\n  user: { id: 1, plan: 'pro' }\n  cart: { id: 42, items: 3, total: 9999 }\n  payment: { method: 'card', status: 'success' }\n  status: 200\n","Output","bash",[691,1308,1309,1329,1354,1379,1408],{"__ignoreMap":689},[694,1310,1311,1314,1317,1320,1323,1327],{"class":696,"line":697},[694,1312,1313],{"class":704},"[",[694,1315,1316],{"class":700},"INFO",[694,1318,1319],{"class":704},"]",[694,1321,1322],{"class":700}," POST \u002Fapi\u002Fcheckout (",[694,1324,1326],{"class":1325},"sBMFI","234ms",[694,1328,724],{"class":700},[694,1330,1331,1334,1336,1339,1342,1345,1347,1349,1351],{"class":696,"line":727},[694,1332,1333],{"class":1325},"  user:",[694,1335,748],{"class":718},[694,1337,1338],{"class":718}," id:",[694,1340,1341],{"class":718}," 1,",[694,1343,1344],{"class":718}," plan:",[694,1346,798],{"class":704},[694,1348,1017],{"class":718},[694,1350,715],{"class":704},[694,1352,1353],{"class":718}," }\n",[694,1355,1356,1359,1361,1363,1366,1369,1372,1375,1377],{"class":696,"line":771},[694,1357,1358],{"class":1325},"  cart:",[694,1360,748],{"class":718},[694,1362,1338],{"class":718},[694,1364,1365],{"class":718}," 42,",[694,1367,1368],{"class":718}," items:",[694,1370,1371],{"class":718}," 3,",[694,1373,1374],{"class":718}," total:",[694,1376,1071],{"class":878},[694,1378,1353],{"class":718},[694,1380,1381,1384,1386,1389,1391,1393,1395,1397,1400,1402,1404,1406],{"class":696,"line":811},[694,1382,1383],{"class":1325},"  payment:",[694,1385,748],{"class":718},[694,1387,1388],{"class":718}," method:",[694,1390,798],{"class":704},[694,1392,1107],{"class":718},[694,1394,715],{"class":704},[694,1396,745],{"class":718},[694,1398,1399],{"class":718}," status:",[694,1401,798],{"class":704},[694,1403,1121],{"class":718},[694,1405,715],{"class":704},[694,1407,1353],{"class":718},[694,1409,1410,1413],{"class":696,"line":831},[694,1411,1412],{"class":1325},"  status:",[694,1414,1415],{"class":878}," 200\n",[608,1417,1418],{},"One log, all context. Everything you need to understand what happened.",[672,1420,1422],{"id":1421},"accumulate-context-emit-once","Accumulate context, emit once",[1424,1425,1427,1430],"h3",{"id":1426},"createlogger-general-purpose",[691,1428,1429],{},"createLogger"," (General Purpose)",[608,1432,1433,1434,1437],{},"Use ",[691,1435,1436],{},"createLogger()"," for scripts, background jobs, queue workers, cron jobs, or any operation where you manage the lifecycle:",[683,1439,1442],{"className":685,"code":1440,"filename":1441,"language":688,"meta":689,"style":689},"import { initLogger, createLogger } from 'evlog'\n\ninitLogger({ env: { service: 'migrate' } })\n\nconst log = createLogger({ task: 'user-migration' })\n\nconst users = await db.query('SELECT * FROM legacy_users')\nlog.set({ found: users.length })\n\nlet migrated = 0\nfor (const user of users) {\n  await newDb.upsert({ id: user.id, email: user.email, plan: user.plan })\n  migrated++\n}\n\nlog.set({ migrated, status: 'complete' })\nlog.emit()\n","scripts\u002Fmigrate-users.ts",[691,1443,1444,1467,1471,1505,1509,1539,1543,1574,1603,1608,1622,1645,1705,1714,1720,1725,1758],{"__ignoreMap":689},[694,1445,1446,1448,1450,1453,1455,1457,1459,1461,1463,1465],{"class":696,"line":697},[694,1447,931],{"class":930},[694,1449,748],{"class":704},[694,1451,1452],{"class":700}," initLogger",[694,1454,745],{"class":704},[694,1456,1144],{"class":700},[694,1458,806],{"class":704},[694,1460,941],{"class":930},[694,1462,798],{"class":704},[694,1464,946],{"class":718},[694,1466,949],{"class":704},[694,1468,1469],{"class":696,"line":727},[694,1470,955],{"emptyLinePlaceholder":954},[694,1472,1473,1476,1478,1480,1483,1485,1487,1490,1492,1494,1497,1499,1501,1503],{"class":696,"line":771},[694,1474,1475],{"class":708},"initLogger",[694,1477,712],{"class":700},[694,1479,991],{"class":704},[694,1481,1482],{"class":751}," env",[694,1484,755],{"class":704},[694,1486,748],{"class":704},[694,1488,1489],{"class":751}," service",[694,1491,755],{"class":704},[694,1493,798],{"class":704},[694,1495,1496],{"class":718},"migrate",[694,1498,715],{"class":704},[694,1500,806],{"class":704},[694,1502,806],{"class":704},[694,1504,724],{"class":700},[694,1506,1507],{"class":696,"line":811},[694,1508,955],{"emptyLinePlaceholder":954},[694,1510,1511,1513,1515,1517,1519,1521,1523,1526,1528,1530,1533,1535,1537],{"class":696,"line":831},[694,1512,961],{"class":960},[694,1514,964],{"class":700},[694,1516,967],{"class":704},[694,1518,1144],{"class":708},[694,1520,712],{"class":700},[694,1522,991],{"class":704},[694,1524,1525],{"class":751}," task",[694,1527,755],{"class":704},[694,1529,798],{"class":704},[694,1531,1532],{"class":718},"user-migration",[694,1534,715],{"class":704},[694,1536,806],{"class":704},[694,1538,724],{"class":700},[694,1540,1541],{"class":696,"line":851},[694,1542,955],{"emptyLinePlaceholder":954},[694,1544,1545,1547,1550,1552,1555,1558,1560,1563,1565,1567,1570,1572],{"class":696,"line":1080},[694,1546,961],{"class":960},[694,1548,1549],{"class":700}," users ",[694,1551,967],{"class":704},[694,1553,1554],{"class":930}," await",[694,1556,1557],{"class":700}," db",[694,1559,705],{"class":704},[694,1561,1562],{"class":708},"query",[694,1564,712],{"class":700},[694,1566,715],{"class":704},[694,1568,1569],{"class":718},"SELECT * FROM legacy_users",[694,1571,715],{"class":704},[694,1573,724],{"class":700},[694,1575,1577,1579,1581,1583,1585,1587,1589,1591,1594,1596,1599,1601],{"class":696,"line":1576},8,[694,1578,981],{"class":700},[694,1580,705],{"class":704},[694,1582,986],{"class":708},[694,1584,712],{"class":700},[694,1586,991],{"class":704},[694,1588,1268],{"class":751},[694,1590,755],{"class":704},[694,1592,1593],{"class":700}," users",[694,1595,705],{"class":704},[694,1597,1598],{"class":700},"length ",[694,1600,766],{"class":704},[694,1602,724],{"class":700},[694,1604,1606],{"class":696,"line":1605},9,[694,1607,955],{"emptyLinePlaceholder":954},[694,1609,1611,1614,1617,1619],{"class":696,"line":1610},10,[694,1612,1613],{"class":960},"let",[694,1615,1616],{"class":700}," migrated ",[694,1618,967],{"class":704},[694,1620,1621],{"class":878}," 0\n",[694,1623,1625,1628,1631,1633,1636,1639,1642],{"class":696,"line":1624},11,[694,1626,1627],{"class":930},"for",[694,1629,1630],{"class":700}," (",[694,1632,961],{"class":960},[694,1634,1635],{"class":700}," user ",[694,1637,1638],{"class":704},"of",[694,1640,1641],{"class":700}," users) ",[694,1643,1644],{"class":704},"{\n",[694,1646,1648,1651,1654,1656,1659,1661,1663,1665,1667,1669,1671,1674,1676,1679,1681,1683,1685,1688,1690,1692,1694,1696,1698,1701,1703],{"class":696,"line":1647},12,[694,1649,1650],{"class":930},"  await",[694,1652,1653],{"class":700}," newDb",[694,1655,705],{"class":704},[694,1657,1658],{"class":708},"upsert",[694,1660,712],{"class":751},[694,1662,991],{"class":704},[694,1664,1000],{"class":751},[694,1666,755],{"class":704},[694,1668,758],{"class":700},[694,1670,705],{"class":704},[694,1672,1673],{"class":700},"id",[694,1675,745],{"class":704},[694,1677,1678],{"class":751}," email",[694,1680,755],{"class":704},[694,1682,758],{"class":700},[694,1684,705],{"class":704},[694,1686,1687],{"class":700},"email",[694,1689,745],{"class":704},[694,1691,1010],{"class":751},[694,1693,755],{"class":704},[694,1695,758],{"class":700},[694,1697,705],{"class":704},[694,1699,1700],{"class":700},"plan",[694,1702,806],{"class":704},[694,1704,724],{"class":751},[694,1706,1708,1711],{"class":696,"line":1707},13,[694,1709,1710],{"class":700},"  migrated",[694,1712,1713],{"class":704},"++\n",[694,1715,1717],{"class":696,"line":1716},14,[694,1718,1719],{"class":704},"}\n",[694,1721,1723],{"class":696,"line":1722},15,[694,1724,955],{"emptyLinePlaceholder":954},[694,1726,1728,1730,1732,1734,1736,1738,1741,1743,1745,1747,1749,1752,1754,1756],{"class":696,"line":1727},16,[694,1729,981],{"class":700},[694,1731,705],{"class":704},[694,1733,986],{"class":708},[694,1735,712],{"class":700},[694,1737,991],{"class":704},[694,1739,1740],{"class":700}," migrated",[694,1742,745],{"class":704},[694,1744,1114],{"class":751},[694,1746,755],{"class":704},[694,1748,798],{"class":704},[694,1750,1751],{"class":718},"complete",[694,1753,715],{"class":704},[694,1755,806],{"class":704},[694,1757,724],{"class":700},[694,1759,1761,1763,1765,1767],{"class":696,"line":1760},17,[694,1762,981],{"class":700},[694,1764,705],{"class":704},[694,1766,1297],{"class":708},[694,1768,1300],{"class":700},[1424,1770,1772,1775],{"id":1771},"createrequestlogger-http-contexts",[691,1773,1774],{},"createRequestLogger"," (HTTP Contexts)",[608,1777,1433,1778,1781,1782,1784,1785,1788,1789,1792,1793,755],{},[691,1779,1780],{},"createRequestLogger()"," when working with HTTP requests outside of a framework integration. It's a thin wrapper around ",[691,1783,1429],{}," that pre-populates ",[691,1786,1787],{},"method",", ",[691,1790,1791],{},"path",", and ",[691,1794,1795],{},"requestId",[683,1797,1800],{"className":685,"code":1798,"filename":1799,"language":688,"meta":689,"style":689},"import { initLogger, createRequestLogger } from 'evlog'\n\ninitLogger({ env: { service: 'my-worker' } })\n\nconst log = createRequestLogger({ method: 'POST', path: '\u002Fapi\u002Fcheckout' })\n\nlog.set({ user: { id: 1, plan: 'pro' } })\nlog.set({ cart: { items: 3, total: 9999 } })\n\nlog.emit()\n","src\u002Fworker.ts",[691,1801,1802,1825,1829,1860,1864,1907,1911,1953,1991,1995],{"__ignoreMap":689},[694,1803,1804,1806,1808,1810,1812,1815,1817,1819,1821,1823],{"class":696,"line":697},[694,1805,931],{"class":930},[694,1807,748],{"class":704},[694,1809,1452],{"class":700},[694,1811,745],{"class":704},[694,1813,1814],{"class":700}," createRequestLogger",[694,1816,806],{"class":704},[694,1818,941],{"class":930},[694,1820,798],{"class":704},[694,1822,946],{"class":718},[694,1824,949],{"class":704},[694,1826,1827],{"class":696,"line":727},[694,1828,955],{"emptyLinePlaceholder":954},[694,1830,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1852,1854,1856,1858],{"class":696,"line":771},[694,1832,1475],{"class":708},[694,1834,712],{"class":700},[694,1836,991],{"class":704},[694,1838,1482],{"class":751},[694,1840,755],{"class":704},[694,1842,748],{"class":704},[694,1844,1489],{"class":751},[694,1846,755],{"class":704},[694,1848,798],{"class":704},[694,1850,1851],{"class":718},"my-worker",[694,1853,715],{"class":704},[694,1855,806],{"class":704},[694,1857,806],{"class":704},[694,1859,724],{"class":700},[694,1861,1862],{"class":696,"line":811},[694,1863,955],{"emptyLinePlaceholder":954},[694,1865,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1887,1889,1891,1894,1896,1898,1901,1903,1905],{"class":696,"line":831},[694,1867,961],{"class":960},[694,1869,964],{"class":700},[694,1871,967],{"class":704},[694,1873,1814],{"class":708},[694,1875,712],{"class":700},[694,1877,991],{"class":704},[694,1879,1100],{"class":751},[694,1881,755],{"class":704},[694,1883,798],{"class":704},[694,1885,1886],{"class":718},"POST",[694,1888,715],{"class":704},[694,1890,745],{"class":704},[694,1892,1893],{"class":751}," path",[694,1895,755],{"class":704},[694,1897,798],{"class":704},[694,1899,1900],{"class":718},"\u002Fapi\u002Fcheckout",[694,1902,715],{"class":704},[694,1904,806],{"class":704},[694,1906,724],{"class":700},[694,1908,1909],{"class":696,"line":851},[694,1910,955],{"emptyLinePlaceholder":954},[694,1912,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951],{"class":696,"line":1080},[694,1914,981],{"class":700},[694,1916,705],{"class":704},[694,1918,986],{"class":708},[694,1920,712],{"class":700},[694,1922,991],{"class":704},[694,1924,758],{"class":751},[694,1926,755],{"class":704},[694,1928,748],{"class":704},[694,1930,1000],{"class":751},[694,1932,755],{"class":704},[694,1934,1005],{"class":878},[694,1936,745],{"class":704},[694,1938,1010],{"class":751},[694,1940,755],{"class":704},[694,1942,798],{"class":704},[694,1944,1017],{"class":718},[694,1946,715],{"class":704},[694,1948,806],{"class":704},[694,1950,806],{"class":704},[694,1952,724],{"class":700},[694,1954,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989],{"class":696,"line":1576},[694,1956,981],{"class":700},[694,1958,705],{"class":704},[694,1960,986],{"class":708},[694,1962,712],{"class":700},[694,1964,991],{"class":704},[694,1966,1040],{"class":751},[694,1968,755],{"class":704},[694,1970,748],{"class":704},[694,1972,1056],{"class":751},[694,1974,755],{"class":704},[694,1976,1061],{"class":878},[694,1978,745],{"class":704},[694,1980,1066],{"class":751},[694,1982,755],{"class":704},[694,1984,1071],{"class":878},[694,1986,806],{"class":704},[694,1988,806],{"class":704},[694,1990,724],{"class":700},[694,1992,1993],{"class":696,"line":1605},[694,1994,955],{"emptyLinePlaceholder":954},[694,1996,1997,1999,2001,2003],{"class":696,"line":1610},[694,1998,981],{"class":700},[694,2000,705],{"class":704},[694,2002,1297],{"class":708},[694,2004,1300],{"class":700},[612,2006,2007,2008,621,2010,2012,2013,2016],{"color":709,"icon":13},"Both ",[691,2009,1429],{},[691,2011,1774],{}," require a manual ",[691,2014,2015],{},"log.emit()"," call. The event won't be emitted until you call it.",[1424,2018,2020,2023],{"id":2019},"uselogger-retrieving-the-request-logger",[691,2021,2022],{},"useLogger"," (Retrieving the Request Logger)",[608,2025,2026,2027,2030],{},"When using a framework integration (Nuxt, Hono, Express, etc.), the middleware creates a wide event logger automatically on each request. ",[691,2028,2029],{},"useLogger(event)"," retrieves that logger from the request context:",[2032,2033,2034,2230,2429,2624,2812],"framework-tabs",{},[683,2035,2037],{"className":685,"code":2036,"filename":240,"language":688,"meta":923,"style":689},"import { useLogger } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  log.set({ user: { id: 1, plan: 'pro' } })\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  return { success: true }\n  \u002F\u002F auto-emitted on response end\n})\n",[691,2038,2039,2057,2061,2092,2111,2115,2158,2196,2200,2218,2224],{"__ignoreMap":689},[694,2040,2041,2043,2045,2047,2049,2051,2053,2055],{"class":696,"line":697},[694,2042,931],{"class":930},[694,2044,748],{"class":704},[694,2046,936],{"class":700},[694,2048,806],{"class":704},[694,2050,941],{"class":930},[694,2052,798],{"class":704},[694,2054,946],{"class":718},[694,2056,949],{"class":704},[694,2058,2059],{"class":696,"line":727},[694,2060,955],{"emptyLinePlaceholder":954},[694,2062,2063,2066,2069,2072,2074,2077,2079,2083,2086,2089],{"class":696,"line":771},[694,2064,2065],{"class":930},"export",[694,2067,2068],{"class":930}," default",[694,2070,2071],{"class":708}," defineEventHandler",[694,2073,712],{"class":700},[694,2075,2076],{"class":960},"async",[694,2078,1630],{"class":704},[694,2080,2082],{"class":2081},"sHdIc","event",[694,2084,2085],{"class":704},")",[694,2087,2088],{"class":960}," =>",[694,2090,2091],{"class":704}," {\n",[694,2093,2094,2097,2100,2103,2105,2107,2109],{"class":696,"line":811},[694,2095,2096],{"class":960},"  const",[694,2098,2099],{"class":700}," log",[694,2101,2102],{"class":704}," =",[694,2104,936],{"class":708},[694,2106,712],{"class":751},[694,2108,2082],{"class":700},[694,2110,724],{"class":751},[694,2112,2113],{"class":696,"line":831},[694,2114,955],{"emptyLinePlaceholder":954},[694,2116,2117,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156],{"class":696,"line":851},[694,2118,2119],{"class":700},"  log",[694,2121,705],{"class":704},[694,2123,986],{"class":708},[694,2125,712],{"class":751},[694,2127,991],{"class":704},[694,2129,758],{"class":751},[694,2131,755],{"class":704},[694,2133,748],{"class":704},[694,2135,1000],{"class":751},[694,2137,755],{"class":704},[694,2139,1005],{"class":878},[694,2141,745],{"class":704},[694,2143,1010],{"class":751},[694,2145,755],{"class":704},[694,2147,798],{"class":704},[694,2149,1017],{"class":718},[694,2151,715],{"class":704},[694,2153,806],{"class":704},[694,2155,806],{"class":704},[694,2157,724],{"class":751},[694,2159,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194],{"class":696,"line":1080},[694,2161,2119],{"class":700},[694,2163,705],{"class":704},[694,2165,986],{"class":708},[694,2167,712],{"class":751},[694,2169,991],{"class":704},[694,2171,1040],{"class":751},[694,2173,755],{"class":704},[694,2175,748],{"class":704},[694,2177,1056],{"class":751},[694,2179,755],{"class":704},[694,2181,1061],{"class":878},[694,2183,745],{"class":704},[694,2185,1066],{"class":751},[694,2187,755],{"class":704},[694,2189,1071],{"class":878},[694,2191,806],{"class":704},[694,2193,806],{"class":704},[694,2195,724],{"class":751},[694,2197,2198],{"class":696,"line":1576},[694,2199,955],{"emptyLinePlaceholder":954},[694,2201,2202,2205,2207,2210,2212,2216],{"class":696,"line":1605},[694,2203,2204],{"class":930},"  return",[694,2206,748],{"class":704},[694,2208,2209],{"class":751}," success",[694,2211,755],{"class":704},[694,2213,2215],{"class":2214},"sfNiH"," true",[694,2217,1353],{"class":704},[694,2219,2220],{"class":696,"line":1610},[694,2221,2223],{"class":2222},"sHwdD","  \u002F\u002F auto-emitted on response end\n",[694,2225,2226,2228],{"class":696,"line":1624},[694,2227,766],{"class":704},[694,2229,724],{"class":700},[683,2231,2234],{"className":685,"code":2232,"filename":255,"language":688,"meta":2233,"style":689},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n\n  log.set({ user: { id: 1, plan: 'pro' } })\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  return { success: true }\n  \u002F\u002F auto-emitted on response end\n})\n","routes\u002Fapi\u002Fcheckout.post.ts",[691,2235,2236,2256,2275,2279,2301,2317,2321,2363,2401,2405,2419,2423],{"__ignoreMap":689},[694,2237,2238,2240,2242,2245,2247,2249,2251,2254],{"class":696,"line":697},[694,2239,931],{"class":930},[694,2241,748],{"class":704},[694,2243,2244],{"class":700}," defineHandler",[694,2246,806],{"class":704},[694,2248,941],{"class":930},[694,2250,798],{"class":704},[694,2252,2253],{"class":718},"nitro\u002Fh3",[694,2255,949],{"class":704},[694,2257,2258,2260,2262,2264,2266,2268,2270,2273],{"class":696,"line":727},[694,2259,931],{"class":930},[694,2261,748],{"class":704},[694,2263,936],{"class":700},[694,2265,806],{"class":704},[694,2267,941],{"class":930},[694,2269,798],{"class":704},[694,2271,2272],{"class":718},"evlog\u002Fnitro\u002Fv3",[694,2274,949],{"class":704},[694,2276,2277],{"class":696,"line":771},[694,2278,955],{"emptyLinePlaceholder":954},[694,2280,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299],{"class":696,"line":811},[694,2282,2065],{"class":930},[694,2284,2068],{"class":930},[694,2286,2244],{"class":708},[694,2288,712],{"class":700},[694,2290,2076],{"class":960},[694,2292,1630],{"class":704},[694,2294,2082],{"class":2081},[694,2296,2085],{"class":704},[694,2298,2088],{"class":960},[694,2300,2091],{"class":704},[694,2302,2303,2305,2307,2309,2311,2313,2315],{"class":696,"line":831},[694,2304,2096],{"class":960},[694,2306,2099],{"class":700},[694,2308,2102],{"class":704},[694,2310,936],{"class":708},[694,2312,712],{"class":751},[694,2314,2082],{"class":700},[694,2316,724],{"class":751},[694,2318,2319],{"class":696,"line":851},[694,2320,955],{"emptyLinePlaceholder":954},[694,2322,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361],{"class":696,"line":1080},[694,2324,2119],{"class":700},[694,2326,705],{"class":704},[694,2328,986],{"class":708},[694,2330,712],{"class":751},[694,2332,991],{"class":704},[694,2334,758],{"class":751},[694,2336,755],{"class":704},[694,2338,748],{"class":704},[694,2340,1000],{"class":751},[694,2342,755],{"class":704},[694,2344,1005],{"class":878},[694,2346,745],{"class":704},[694,2348,1010],{"class":751},[694,2350,755],{"class":704},[694,2352,798],{"class":704},[694,2354,1017],{"class":718},[694,2356,715],{"class":704},[694,2358,806],{"class":704},[694,2360,806],{"class":704},[694,2362,724],{"class":751},[694,2364,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399],{"class":696,"line":1576},[694,2366,2119],{"class":700},[694,2368,705],{"class":704},[694,2370,986],{"class":708},[694,2372,712],{"class":751},[694,2374,991],{"class":704},[694,2376,1040],{"class":751},[694,2378,755],{"class":704},[694,2380,748],{"class":704},[694,2382,1056],{"class":751},[694,2384,755],{"class":704},[694,2386,1061],{"class":878},[694,2388,745],{"class":704},[694,2390,1066],{"class":751},[694,2392,755],{"class":704},[694,2394,1071],{"class":878},[694,2396,806],{"class":704},[694,2398,806],{"class":704},[694,2400,724],{"class":751},[694,2402,2403],{"class":696,"line":1605},[694,2404,955],{"emptyLinePlaceholder":954},[694,2406,2407,2409,2411,2413,2415,2417],{"class":696,"line":1610},[694,2408,2204],{"class":930},[694,2410,748],{"class":704},[694,2412,2209],{"class":751},[694,2414,755],{"class":704},[694,2416,2215],{"class":2214},[694,2418,1353],{"class":704},[694,2420,2421],{"class":696,"line":1624},[694,2422,2223],{"class":2222},[694,2424,2425,2427],{"class":696,"line":1647},[694,2426,766],{"class":704},[694,2428,724],{"class":700},[683,2430,2433],{"className":685,"code":2431,"filename":245,"language":688,"meta":2432,"style":689},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\n\nexport const POST = withEvlog(async () => {\n  const log = useLogger()\n\n  log.set({ user: { id: 1, plan: 'pro' } })\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  return Response.json({ success: true })\n  \u002F\u002F auto-emitted on response end\n})\n","app\u002Fapi\u002Fcheckout\u002Froute.ts",[691,2434,2435,2459,2463,2488,2500,2504,2546,2584,2588,2614,2618],{"__ignoreMap":689},[694,2436,2437,2439,2441,2444,2446,2448,2450,2452,2454,2457],{"class":696,"line":697},[694,2438,931],{"class":930},[694,2440,748],{"class":704},[694,2442,2443],{"class":700}," withEvlog",[694,2445,745],{"class":704},[694,2447,936],{"class":700},[694,2449,806],{"class":704},[694,2451,941],{"class":930},[694,2453,798],{"class":704},[694,2455,2456],{"class":718},"@\u002Flib\u002Fevlog",[694,2458,949],{"class":704},[694,2460,2461],{"class":696,"line":727},[694,2462,955],{"emptyLinePlaceholder":954},[694,2464,2465,2467,2470,2473,2475,2477,2479,2481,2484,2486],{"class":696,"line":771},[694,2466,2065],{"class":930},[694,2468,2469],{"class":960}," const",[694,2471,2472],{"class":700}," POST ",[694,2474,967],{"class":704},[694,2476,2443],{"class":708},[694,2478,712],{"class":700},[694,2480,2076],{"class":960},[694,2482,2483],{"class":704}," ()",[694,2485,2088],{"class":960},[694,2487,2091],{"class":704},[694,2489,2490,2492,2494,2496,2498],{"class":696,"line":811},[694,2491,2096],{"class":960},[694,2493,2099],{"class":700},[694,2495,2102],{"class":704},[694,2497,936],{"class":708},[694,2499,1300],{"class":751},[694,2501,2502],{"class":696,"line":831},[694,2503,955],{"emptyLinePlaceholder":954},[694,2505,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544],{"class":696,"line":851},[694,2507,2119],{"class":700},[694,2509,705],{"class":704},[694,2511,986],{"class":708},[694,2513,712],{"class":751},[694,2515,991],{"class":704},[694,2517,758],{"class":751},[694,2519,755],{"class":704},[694,2521,748],{"class":704},[694,2523,1000],{"class":751},[694,2525,755],{"class":704},[694,2527,1005],{"class":878},[694,2529,745],{"class":704},[694,2531,1010],{"class":751},[694,2533,755],{"class":704},[694,2535,798],{"class":704},[694,2537,1017],{"class":718},[694,2539,715],{"class":704},[694,2541,806],{"class":704},[694,2543,806],{"class":704},[694,2545,724],{"class":751},[694,2547,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582],{"class":696,"line":1080},[694,2549,2119],{"class":700},[694,2551,705],{"class":704},[694,2553,986],{"class":708},[694,2555,712],{"class":751},[694,2557,991],{"class":704},[694,2559,1040],{"class":751},[694,2561,755],{"class":704},[694,2563,748],{"class":704},[694,2565,1056],{"class":751},[694,2567,755],{"class":704},[694,2569,1061],{"class":878},[694,2571,745],{"class":704},[694,2573,1066],{"class":751},[694,2575,755],{"class":704},[694,2577,1071],{"class":878},[694,2579,806],{"class":704},[694,2581,806],{"class":704},[694,2583,724],{"class":751},[694,2585,2586],{"class":696,"line":1576},[694,2587,955],{"emptyLinePlaceholder":954},[694,2589,2590,2592,2595,2597,2600,2602,2604,2606,2608,2610,2612],{"class":696,"line":1605},[694,2591,2204],{"class":930},[694,2593,2594],{"class":700}," Response",[694,2596,705],{"class":704},[694,2598,2599],{"class":708},"json",[694,2601,712],{"class":751},[694,2603,991],{"class":704},[694,2605,2209],{"class":751},[694,2607,755],{"class":704},[694,2609,2215],{"class":2214},[694,2611,806],{"class":704},[694,2613,724],{"class":751},[694,2615,2616],{"class":696,"line":1610},[694,2617,2223],{"class":2222},[694,2619,2620,2622],{"class":696,"line":1624},[694,2621,766],{"class":704},[694,2623,724],{"class":700},[683,2625,2628],{"className":685,"code":2626,"filename":275,"language":688,"meta":2627,"style":689},"app.post('\u002Fapi\u002Fcheckout', async (c) => {\n  const log = c.get('log')\n\n  log.set({ user: { id: 1, plan: 'pro' } })\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  return c.json({ success: true })\n  \u002F\u002F auto-emitted on response end\n})\n","src\u002Findex.ts",[691,2629,2630,2664,2690,2694,2736,2774,2778,2802,2806],{"__ignoreMap":689},[694,2631,2632,2635,2637,2640,2642,2644,2646,2648,2650,2653,2655,2658,2660,2662],{"class":696,"line":697},[694,2633,2634],{"class":700},"app",[694,2636,705],{"class":704},[694,2638,2639],{"class":708},"post",[694,2641,712],{"class":700},[694,2643,715],{"class":704},[694,2645,1900],{"class":718},[694,2647,715],{"class":704},[694,2649,745],{"class":704},[694,2651,2652],{"class":960}," async",[694,2654,1630],{"class":704},[694,2656,2657],{"class":2081},"c",[694,2659,2085],{"class":704},[694,2661,2088],{"class":960},[694,2663,2091],{"class":704},[694,2665,2666,2668,2670,2672,2675,2677,2680,2682,2684,2686,2688],{"class":696,"line":727},[694,2667,2096],{"class":960},[694,2669,2099],{"class":700},[694,2671,2102],{"class":704},[694,2673,2674],{"class":700}," c",[694,2676,705],{"class":704},[694,2678,2679],{"class":708},"get",[694,2681,712],{"class":751},[694,2683,715],{"class":704},[694,2685,981],{"class":718},[694,2687,715],{"class":704},[694,2689,724],{"class":751},[694,2691,2692],{"class":696,"line":771},[694,2693,955],{"emptyLinePlaceholder":954},[694,2695,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734],{"class":696,"line":811},[694,2697,2119],{"class":700},[694,2699,705],{"class":704},[694,2701,986],{"class":708},[694,2703,712],{"class":751},[694,2705,991],{"class":704},[694,2707,758],{"class":751},[694,2709,755],{"class":704},[694,2711,748],{"class":704},[694,2713,1000],{"class":751},[694,2715,755],{"class":704},[694,2717,1005],{"class":878},[694,2719,745],{"class":704},[694,2721,1010],{"class":751},[694,2723,755],{"class":704},[694,2725,798],{"class":704},[694,2727,1017],{"class":718},[694,2729,715],{"class":704},[694,2731,806],{"class":704},[694,2733,806],{"class":704},[694,2735,724],{"class":751},[694,2737,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772],{"class":696,"line":831},[694,2739,2119],{"class":700},[694,2741,705],{"class":704},[694,2743,986],{"class":708},[694,2745,712],{"class":751},[694,2747,991],{"class":704},[694,2749,1040],{"class":751},[694,2751,755],{"class":704},[694,2753,748],{"class":704},[694,2755,1056],{"class":751},[694,2757,755],{"class":704},[694,2759,1061],{"class":878},[694,2761,745],{"class":704},[694,2763,1066],{"class":751},[694,2765,755],{"class":704},[694,2767,1071],{"class":878},[694,2769,806],{"class":704},[694,2771,806],{"class":704},[694,2773,724],{"class":751},[694,2775,2776],{"class":696,"line":851},[694,2777,955],{"emptyLinePlaceholder":954},[694,2779,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800],{"class":696,"line":1080},[694,2781,2204],{"class":930},[694,2783,2674],{"class":700},[694,2785,705],{"class":704},[694,2787,2599],{"class":708},[694,2789,712],{"class":751},[694,2791,991],{"class":704},[694,2793,2209],{"class":751},[694,2795,755],{"class":704},[694,2797,2215],{"class":2214},[694,2799,806],{"class":704},[694,2801,724],{"class":751},[694,2803,2804],{"class":696,"line":1576},[694,2805,2223],{"class":2222},[694,2807,2808,2810],{"class":696,"line":1605},[694,2809,766],{"class":704},[694,2811,724],{"class":700},[683,2813,2815],{"className":685,"code":2814,"filename":270,"language":688,"meta":2627,"style":689},"app.post('\u002Fapi\u002Fcheckout', async (req, res) => {\n  const log = req.log\n\n  log.set({ user: { id: 1, plan: 'pro' } })\n  log.set({ cart: { items: 3, total: 9999 } })\n\n  return res.json({ success: true })\n  \u002F\u002F auto-emitted on response end\n})\n",[691,2816,2817,2853,2869,2873,2915,2953,2957,2981,2985],{"__ignoreMap":689},[694,2818,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2842,2844,2847,2849,2851],{"class":696,"line":697},[694,2820,2634],{"class":700},[694,2822,705],{"class":704},[694,2824,2639],{"class":708},[694,2826,712],{"class":700},[694,2828,715],{"class":704},[694,2830,1900],{"class":718},[694,2832,715],{"class":704},[694,2834,745],{"class":704},[694,2836,2652],{"class":960},[694,2838,1630],{"class":704},[694,2840,2841],{"class":2081},"req",[694,2843,745],{"class":704},[694,2845,2846],{"class":2081}," res",[694,2848,2085],{"class":704},[694,2850,2088],{"class":960},[694,2852,2091],{"class":704},[694,2854,2855,2857,2859,2861,2864,2866],{"class":696,"line":727},[694,2856,2096],{"class":960},[694,2858,2099],{"class":700},[694,2860,2102],{"class":704},[694,2862,2863],{"class":700}," req",[694,2865,705],{"class":704},[694,2867,2868],{"class":700},"log\n",[694,2870,2871],{"class":696,"line":771},[694,2872,955],{"emptyLinePlaceholder":954},[694,2874,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913],{"class":696,"line":811},[694,2876,2119],{"class":700},[694,2878,705],{"class":704},[694,2880,986],{"class":708},[694,2882,712],{"class":751},[694,2884,991],{"class":704},[694,2886,758],{"class":751},[694,2888,755],{"class":704},[694,2890,748],{"class":704},[694,2892,1000],{"class":751},[694,2894,755],{"class":704},[694,2896,1005],{"class":878},[694,2898,745],{"class":704},[694,2900,1010],{"class":751},[694,2902,755],{"class":704},[694,2904,798],{"class":704},[694,2906,1017],{"class":718},[694,2908,715],{"class":704},[694,2910,806],{"class":704},[694,2912,806],{"class":704},[694,2914,724],{"class":751},[694,2916,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951],{"class":696,"line":831},[694,2918,2119],{"class":700},[694,2920,705],{"class":704},[694,2922,986],{"class":708},[694,2924,712],{"class":751},[694,2926,991],{"class":704},[694,2928,1040],{"class":751},[694,2930,755],{"class":704},[694,2932,748],{"class":704},[694,2934,1056],{"class":751},[694,2936,755],{"class":704},[694,2938,1061],{"class":878},[694,2940,745],{"class":704},[694,2942,1066],{"class":751},[694,2944,755],{"class":704},[694,2946,1071],{"class":878},[694,2948,806],{"class":704},[694,2950,806],{"class":704},[694,2952,724],{"class":751},[694,2954,2955],{"class":696,"line":851},[694,2956,955],{"emptyLinePlaceholder":954},[694,2958,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979],{"class":696,"line":1080},[694,2960,2204],{"class":930},[694,2962,2846],{"class":700},[694,2964,705],{"class":704},[694,2966,2599],{"class":708},[694,2968,712],{"class":751},[694,2970,991],{"class":704},[694,2972,2209],{"class":751},[694,2974,755],{"class":704},[694,2976,2215],{"class":2214},[694,2978,806],{"class":704},[694,2980,724],{"class":751},[694,2982,2983],{"class":696,"line":1576},[694,2984,2223],{"class":2222},[694,2986,2987,2989],{"class":696,"line":1605},[694,2988,766],{"class":704},[694,2990,724],{"class":700},[612,2992,2993,2995,2996,2998],{"color":709,"icon":13},[691,2994,2022],{}," doesn't create a logger, it retrieves the one the framework middleware already attached to the event. The middleware handles creation and emission automatically. In Nuxt, ",[691,2997,2022],{}," is auto-imported.",[672,3000,3002],{"id":3001},"after-emit-sealing-and-background-work","After emit: sealing and background work",[608,3004,3005,3006,3009,3010,3012,3013,3016,3017,1788,3019,1788,3022,1792,3024,3027,3028,3031,3032,3038,3039,3042,3043,3046,3047,3050],{},"When the wide event is ",[892,3007,3008],{},"emitted"," (automatically at the end of the request, or when you call ",[691,3011,2015],{}," yourself), that logger instance is ",[892,3014,3015],{},"sealed",". Further ",[691,3018,986],{},[691,3020,3021],{},"error",[691,3023,709],{},[691,3025,3026],{},"warn"," calls do ",[892,3029,3030],{},"not"," update the event that was already sent to your drains. They are ignored and evlog prints a ",[892,3033,3034,3037],{},[691,3035,3036],{},"[evlog]"," warning"," to the console with the keys that were dropped. This also applies when ",[892,3040,3041],{},"head sampling"," discards the event (",[691,3044,3045],{},"emit()"," returned ",[691,3048,3049],{},"null","): the logger is still sealed for that unit of work.",[608,3052,3053,3054,3057,3058,3061,3062,3065,3066,3069],{},"This matters for ",[892,3055,3056],{},"async work that outlives the handler"," (fire-and-forget promises, ",[691,3059,3060],{},"setTimeout",", tasks started but not awaited). On many runtimes, ",[691,3063,3064],{},"AsyncLocalStorage"," keeps returning the same request logger, so ",[691,3067,3068],{},"useLogger()"," still succeeds even though the HTTP response, and the wide event, are already finished. Without warnings, that looks like silent data loss.",[1424,3071,3073],{"id":3072},"logforklabel-fn",[691,3074,3075],{},"log.fork(label, fn)",[608,3077,3078,3079,3082,3083,3087,3088,3091,3092,1788,3095,3097,3098,3100],{},"For intentional background work that should produce ",[892,3080,3081],{},"its own"," wide event, use ",[892,3084,3085],{},[691,3086,3075],{}," when your integration provides it (Express, Fastify, NestJS, SvelteKit, React Router, Next.js ",[691,3089,3090],{},"withEvlog",", Elysia). Inside ",[691,3093,3094],{},"fn",[691,3096,3068],{}," resolves to the forked logger. When ",[691,3099,3094],{}," completes (or throws), that logger emits an event with:",[634,3102,3103,3115],{},[637,3104,3105,3110,3111,3114],{},[892,3106,3107],{},[691,3108,3109],{},"operation",": the ",[691,3112,3113],{},"label"," you passed",[637,3116,3117,3122,3123,3125],{},[892,3118,3119],{},[691,3120,3121],{},"_parentRequestId",": the parent request’s ",[691,3124,1795],{}," (for correlation in queries and dashboards)",[608,3127,3128,3129,3132],{},"The parent wide event may be emitted ",[892,3130,3131],{},"before"," the child event; they are two separate events ordered by time.",[608,3134,3135,3138,3139,3141,3142,3145,3146,3148],{},[892,3136,3137],{},"Not available yet:"," Hono (no ",[691,3140,2022],{}," without ",[691,3143,3144],{},"c.get('log')"," + ALS) and Nitro\u002FNuxt ",[691,3147,2029],{},", so use the post-emit warnings to catch mistakes; a different API may arrive later for event-scoped forks.",[608,3150,3151,3152,3155],{},"For AI SDK streaming responses, supported framework integrations (Next.js, Nitro\u002FNuxt, SvelteKit, Hono, React Router, oRPC) defer wide-event emit until the response body finishes, so ",[691,3153,3154],{},"createAILogger(log)"," metadata lands on the same request event automatically.",[683,3157,3160],{"className":685,"code":3158,"filename":3159,"language":688,"meta":689,"style":689},"import { evlog, useLogger } from 'evlog\u002Fexpress'\n\n\u002F\u002F Inside a route after evlog middleware:\nconst log = req.log\nlog.set({ order_dispatched: true })\n\nlog.fork?.('process_order', async () => {\n  const child = useLogger()\n  child.set({ inventory_checked: true })\n})\n","server\u002Froutes\u002Fcheckout.post.ts",[691,3161,3162,3186,3190,3195,3209,3232,3236,3267,3280,3304],{"__ignoreMap":689},[694,3163,3164,3166,3168,3171,3173,3175,3177,3179,3181,3184],{"class":696,"line":697},[694,3165,931],{"class":930},[694,3167,748],{"class":704},[694,3169,3170],{"class":700}," evlog",[694,3172,745],{"class":704},[694,3174,936],{"class":700},[694,3176,806],{"class":704},[694,3178,941],{"class":930},[694,3180,798],{"class":704},[694,3182,3183],{"class":718},"evlog\u002Fexpress",[694,3185,949],{"class":704},[694,3187,3188],{"class":696,"line":727},[694,3189,955],{"emptyLinePlaceholder":954},[694,3191,3192],{"class":696,"line":771},[694,3193,3194],{"class":2222},"\u002F\u002F Inside a route after evlog middleware:\n",[694,3196,3197,3199,3201,3203,3205,3207],{"class":696,"line":811},[694,3198,961],{"class":960},[694,3200,964],{"class":700},[694,3202,967],{"class":704},[694,3204,2863],{"class":700},[694,3206,705],{"class":704},[694,3208,2868],{"class":700},[694,3210,3211,3213,3215,3217,3219,3221,3224,3226,3228,3230],{"class":696,"line":831},[694,3212,981],{"class":700},[694,3214,705],{"class":704},[694,3216,986],{"class":708},[694,3218,712],{"class":700},[694,3220,991],{"class":704},[694,3222,3223],{"class":751}," order_dispatched",[694,3225,755],{"class":704},[694,3227,2215],{"class":2214},[694,3229,806],{"class":704},[694,3231,724],{"class":700},[694,3233,3234],{"class":696,"line":851},[694,3235,955],{"emptyLinePlaceholder":954},[694,3237,3238,3240,3242,3245,3248,3250,3252,3255,3257,3259,3261,3263,3265],{"class":696,"line":1080},[694,3239,981],{"class":700},[694,3241,705],{"class":704},[694,3243,3244],{"class":708},"fork",[694,3246,3247],{"class":704},"?.",[694,3249,712],{"class":700},[694,3251,715],{"class":704},[694,3253,3254],{"class":718},"process_order",[694,3256,715],{"class":704},[694,3258,745],{"class":704},[694,3260,2652],{"class":960},[694,3262,2483],{"class":704},[694,3264,2088],{"class":960},[694,3266,2091],{"class":704},[694,3268,3269,3271,3274,3276,3278],{"class":696,"line":1576},[694,3270,2096],{"class":960},[694,3272,3273],{"class":700}," child",[694,3275,2102],{"class":704},[694,3277,936],{"class":708},[694,3279,1300],{"class":751},[694,3281,3282,3285,3287,3289,3291,3293,3296,3298,3300,3302],{"class":696,"line":1605},[694,3283,3284],{"class":700},"  child",[694,3286,705],{"class":704},[694,3288,986],{"class":708},[694,3290,712],{"class":751},[694,3292,991],{"class":704},[694,3294,3295],{"class":751}," inventory_checked",[694,3297,755],{"class":704},[694,3299,2215],{"class":2214},[694,3301,806],{"class":704},[694,3303,724],{"class":751},[694,3305,3306,3308],{"class":696,"line":1610},[694,3307,766],{"class":704},[694,3309,724],{"class":700},[672,3311,3313],{"id":3312},"read-a-wide-event-field-by-field","Read a wide event field by field",[608,3315,3316,3317,3319,3320,1788,3322,3324,3325,705],{},"A well-designed wide event contains context from multiple layers. The examples below show what to add inside your handler or script. They assume ",[691,3318,981],{}," is already created via ",[691,3321,1429],{},[691,3323,1774],{},", or ",[691,3326,2022],{},[1424,3328,3330],{"id":3329},"operation-context","Operation Context",[608,3332,3333],{},"Basic information about the operation:",[918,3335,3336,3440],{},[683,3337,3339],{"className":685,"code":3338,"filename":923,"language":688,"meta":689,"style":689},"import { useLogger } from 'evlog'\n\nconst log = useLogger(event)\nlog.set({\n  method: 'POST',\n  path: '\u002Fapi\u002Fcheckout',\n  requestId: 'abc-123-def',\n})\n",[691,3340,3341,3359,3363,3375,3387,3403,3418,3434],{"__ignoreMap":689},[694,3342,3343,3345,3347,3349,3351,3353,3355,3357],{"class":696,"line":697},[694,3344,931],{"class":930},[694,3346,748],{"class":704},[694,3348,936],{"class":700},[694,3350,806],{"class":704},[694,3352,941],{"class":930},[694,3354,798],{"class":704},[694,3356,946],{"class":718},[694,3358,949],{"class":704},[694,3360,3361],{"class":696,"line":727},[694,3362,955],{"emptyLinePlaceholder":954},[694,3364,3365,3367,3369,3371,3373],{"class":696,"line":771},[694,3366,961],{"class":960},[694,3368,964],{"class":700},[694,3370,967],{"class":704},[694,3372,936],{"class":708},[694,3374,972],{"class":700},[694,3376,3377,3379,3381,3383,3385],{"class":696,"line":811},[694,3378,981],{"class":700},[694,3380,705],{"class":704},[694,3382,986],{"class":708},[694,3384,712],{"class":700},[694,3386,1644],{"class":704},[694,3388,3389,3392,3394,3396,3398,3400],{"class":696,"line":831},[694,3390,3391],{"class":751},"  method",[694,3393,755],{"class":704},[694,3395,798],{"class":704},[694,3397,1886],{"class":718},[694,3399,715],{"class":704},[694,3401,3402],{"class":704},",\n",[694,3404,3405,3408,3410,3412,3414,3416],{"class":696,"line":851},[694,3406,3407],{"class":751},"  path",[694,3409,755],{"class":704},[694,3411,798],{"class":704},[694,3413,1900],{"class":718},[694,3415,715],{"class":704},[694,3417,3402],{"class":704},[694,3419,3420,3423,3425,3427,3430,3432],{"class":696,"line":1080},[694,3421,3422],{"class":751},"  requestId",[694,3424,755],{"class":704},[694,3426,798],{"class":704},[694,3428,3429],{"class":718},"abc-123-def",[694,3431,715],{"class":704},[694,3433,3402],{"class":704},[694,3435,3436,3438],{"class":696,"line":1576},[694,3437,766],{"class":704},[694,3439,724],{"class":700},[683,3441,3443],{"className":685,"code":3442,"filename":1133,"language":688,"meta":689,"style":689},"import { createLogger } from 'evlog'\n\nconst log = createLogger({\n  jobId: 'sync-001',\n  queue: 'emails',\n  source: 'postgres',\n})\n",[691,3444,3445,3463,3467,3481,3496,3511,3526],{"__ignoreMap":689},[694,3446,3447,3449,3451,3453,3455,3457,3459,3461],{"class":696,"line":697},[694,3448,931],{"class":930},[694,3450,748],{"class":704},[694,3452,1144],{"class":700},[694,3454,806],{"class":704},[694,3456,941],{"class":930},[694,3458,798],{"class":704},[694,3460,946],{"class":718},[694,3462,949],{"class":704},[694,3464,3465],{"class":696,"line":727},[694,3466,955],{"emptyLinePlaceholder":954},[694,3468,3469,3471,3473,3475,3477,3479],{"class":696,"line":771},[694,3470,961],{"class":960},[694,3472,964],{"class":700},[694,3474,967],{"class":704},[694,3476,1144],{"class":708},[694,3478,712],{"class":700},[694,3480,1644],{"class":704},[694,3482,3483,3486,3488,3490,3492,3494],{"class":696,"line":811},[694,3484,3485],{"class":751},"  jobId",[694,3487,755],{"class":704},[694,3489,798],{"class":704},[694,3491,1182],{"class":718},[694,3493,715],{"class":704},[694,3495,3402],{"class":704},[694,3497,3498,3501,3503,3505,3507,3509],{"class":696,"line":831},[694,3499,3500],{"class":751},"  queue",[694,3502,755],{"class":704},[694,3504,798],{"class":704},[694,3506,1196],{"class":718},[694,3508,715],{"class":704},[694,3510,3402],{"class":704},[694,3512,3513,3516,3518,3520,3522,3524],{"class":696,"line":851},[694,3514,3515],{"class":751},"  source",[694,3517,755],{"class":704},[694,3519,798],{"class":704},[694,3521,801],{"class":718},[694,3523,715],{"class":704},[694,3525,3402],{"class":704},[694,3527,3528,3530],{"class":696,"line":1080},[694,3529,766],{"class":704},[694,3531,724],{"class":700},[612,3533,3534,3535,1788,3537,1788,3539,3541],{"color":709,"icon":13},"In framework integrations, request context (",[691,3536,1787],{},[691,3538,1791],{},[691,3540,1795],{},") is auto-populated by the middleware. You don't need to set these fields manually.",[1424,3543,3545],{"id":3544},"user-actor-context","User \u002F Actor Context",[608,3547,3548],{},"Who triggered the operation:",[683,3550,3553],{"className":685,"code":3551,"filename":3552,"language":688,"meta":689,"style":689},"log.set({\n  userId: user.id,\n  email: user.email,\n  subscription: user.plan,\n  accountAge: daysSince(user.createdAt),\n})\n","services\u002Fcheckout.ts",[691,3554,3555,3567,3582,3597,3612,3632],{"__ignoreMap":689},[694,3556,3557,3559,3561,3563,3565],{"class":696,"line":697},[694,3558,981],{"class":700},[694,3560,705],{"class":704},[694,3562,986],{"class":708},[694,3564,712],{"class":700},[694,3566,1644],{"class":704},[694,3568,3569,3572,3574,3576,3578,3580],{"class":696,"line":727},[694,3570,3571],{"class":751},"  userId",[694,3573,755],{"class":704},[694,3575,758],{"class":700},[694,3577,705],{"class":704},[694,3579,1673],{"class":700},[694,3581,3402],{"class":704},[694,3583,3584,3587,3589,3591,3593,3595],{"class":696,"line":771},[694,3585,3586],{"class":751},"  email",[694,3588,755],{"class":704},[694,3590,758],{"class":700},[694,3592,705],{"class":704},[694,3594,1687],{"class":700},[694,3596,3402],{"class":704},[694,3598,3599,3602,3604,3606,3608,3610],{"class":696,"line":811},[694,3600,3601],{"class":751},"  subscription",[694,3603,755],{"class":704},[694,3605,758],{"class":700},[694,3607,705],{"class":704},[694,3609,1700],{"class":700},[694,3611,3402],{"class":704},[694,3613,3614,3617,3619,3622,3625,3627,3630],{"class":696,"line":831},[694,3615,3616],{"class":751},"  accountAge",[694,3618,755],{"class":704},[694,3620,3621],{"class":708}," daysSince",[694,3623,3624],{"class":700},"(user",[694,3626,705],{"class":704},[694,3628,3629],{"class":700},"createdAt)",[694,3631,3402],{"class":704},[694,3633,3634,3636],{"class":696,"line":851},[694,3635,766],{"class":704},[694,3637,724],{"class":700},[1424,3639,3641],{"id":3640},"business-context","Business Context",[608,3643,3644],{},"Domain-specific data relevant to the operation:",[683,3646,3648],{"className":685,"code":3647,"filename":3552,"language":688,"meta":689,"style":689},"log.set({\n  cart: {\n    id: cart.id,\n    items: cart.items.length,\n    total: cart.total,\n    currency: 'USD',\n  },\n  shipping: {\n    method: 'express',\n    country: address.country,\n  },\n  coupon: appliedCoupon?.code,\n})\n",[691,3649,3650,3662,3671,3686,3707,3723,3739,3744,3753,3769,3786,3790,3806],{"__ignoreMap":689},[694,3651,3652,3654,3656,3658,3660],{"class":696,"line":697},[694,3653,981],{"class":700},[694,3655,705],{"class":704},[694,3657,986],{"class":708},[694,3659,712],{"class":700},[694,3661,1644],{"class":704},[694,3663,3664,3667,3669],{"class":696,"line":727},[694,3665,3666],{"class":751},"  cart",[694,3668,755],{"class":704},[694,3670,2091],{"class":704},[694,3672,3673,3676,3678,3680,3682,3684],{"class":696,"line":771},[694,3674,3675],{"class":751},"    id",[694,3677,755],{"class":704},[694,3679,1040],{"class":700},[694,3681,705],{"class":704},[694,3683,1673],{"class":700},[694,3685,3402],{"class":704},[694,3687,3688,3691,3693,3695,3697,3700,3702,3705],{"class":696,"line":811},[694,3689,3690],{"class":751},"    items",[694,3692,755],{"class":704},[694,3694,1040],{"class":700},[694,3696,705],{"class":704},[694,3698,3699],{"class":700},"items",[694,3701,705],{"class":704},[694,3703,3704],{"class":700},"length",[694,3706,3402],{"class":704},[694,3708,3709,3712,3714,3716,3718,3721],{"class":696,"line":831},[694,3710,3711],{"class":751},"    total",[694,3713,755],{"class":704},[694,3715,1040],{"class":700},[694,3717,705],{"class":704},[694,3719,3720],{"class":700},"total",[694,3722,3402],{"class":704},[694,3724,3725,3728,3730,3732,3735,3737],{"class":696,"line":851},[694,3726,3727],{"class":751},"    currency",[694,3729,755],{"class":704},[694,3731,798],{"class":704},[694,3733,3734],{"class":718},"USD",[694,3736,715],{"class":704},[694,3738,3402],{"class":704},[694,3740,3741],{"class":696,"line":1080},[694,3742,3743],{"class":704},"  },\n",[694,3745,3746,3749,3751],{"class":696,"line":1576},[694,3747,3748],{"class":751},"  shipping",[694,3750,755],{"class":704},[694,3752,2091],{"class":704},[694,3754,3755,3758,3760,3762,3765,3767],{"class":696,"line":1605},[694,3756,3757],{"class":751},"    method",[694,3759,755],{"class":704},[694,3761,798],{"class":704},[694,3763,3764],{"class":718},"express",[694,3766,715],{"class":704},[694,3768,3402],{"class":704},[694,3770,3771,3774,3776,3779,3781,3784],{"class":696,"line":1610},[694,3772,3773],{"class":751},"    country",[694,3775,755],{"class":704},[694,3777,3778],{"class":700}," address",[694,3780,705],{"class":704},[694,3782,3783],{"class":700},"country",[694,3785,3402],{"class":704},[694,3787,3788],{"class":696,"line":1624},[694,3789,3743],{"class":704},[694,3791,3792,3795,3797,3800,3802,3804],{"class":696,"line":1647},[694,3793,3794],{"class":751},"  coupon",[694,3796,755],{"class":704},[694,3798,3799],{"class":700}," appliedCoupon",[694,3801,3247],{"class":704},[694,3803,691],{"class":700},[694,3805,3402],{"class":704},[694,3807,3808,3810],{"class":696,"line":1707},[694,3809,766],{"class":704},[694,3811,724],{"class":700},[1424,3813,3815],{"id":3814},"outcome","Outcome",[608,3817,3818],{},"The result of the operation:",[918,3820,3821,3894],{},[683,3822,3825],{"className":685,"code":3823,"filename":3824,"language":688,"meta":689,"style":689},"log.set({\n  status: 200,\n  duration: Date.now() - startTime,\n  success: true,\n})\n","Success",[691,3826,3827,3839,3851,3877,3888],{"__ignoreMap":689},[694,3828,3829,3831,3833,3835,3837],{"class":696,"line":697},[694,3830,981],{"class":700},[694,3832,705],{"class":704},[694,3834,986],{"class":708},[694,3836,712],{"class":700},[694,3838,1644],{"class":704},[694,3840,3841,3844,3846,3849],{"class":696,"line":727},[694,3842,3843],{"class":751},"  status",[694,3845,755],{"class":704},[694,3847,3848],{"class":878}," 200",[694,3850,3402],{"class":704},[694,3852,3853,3856,3858,3861,3863,3866,3869,3872,3875],{"class":696,"line":771},[694,3854,3855],{"class":751},"  duration",[694,3857,755],{"class":704},[694,3859,3860],{"class":700}," Date",[694,3862,705],{"class":704},[694,3864,3865],{"class":708},"now",[694,3867,3868],{"class":700},"() ",[694,3870,3871],{"class":704},"-",[694,3873,3874],{"class":700}," startTime",[694,3876,3402],{"class":704},[694,3878,3879,3882,3884,3886],{"class":696,"line":811},[694,3880,3881],{"class":751},"  success",[694,3883,755],{"class":704},[694,3885,2215],{"class":2214},[694,3887,3402],{"class":704},[694,3889,3890,3892],{"class":696,"line":831},[694,3891,766],{"class":704},[694,3893,724],{"class":700},[683,3895,3898],{"className":685,"code":3896,"filename":3897,"language":688,"meta":689,"style":689},"log.set({\n  status: 500,\n  error: {\n    message: err.message,\n    code: err.code,\n    type: err.constructor.name,\n  },\n})\n","Error",[691,3899,3900,3912,3923,3932,3949,3964,3985,3989],{"__ignoreMap":689},[694,3901,3902,3904,3906,3908,3910],{"class":696,"line":697},[694,3903,981],{"class":700},[694,3905,705],{"class":704},[694,3907,986],{"class":708},[694,3909,712],{"class":700},[694,3911,1644],{"class":704},[694,3913,3914,3916,3918,3921],{"class":696,"line":727},[694,3915,3843],{"class":751},[694,3917,755],{"class":704},[694,3919,3920],{"class":878}," 500",[694,3922,3402],{"class":704},[694,3924,3925,3928,3930],{"class":696,"line":771},[694,3926,3927],{"class":751},"  error",[694,3929,755],{"class":704},[694,3931,2091],{"class":704},[694,3933,3934,3937,3939,3942,3944,3947],{"class":696,"line":811},[694,3935,3936],{"class":751},"    message",[694,3938,755],{"class":704},[694,3940,3941],{"class":700}," err",[694,3943,705],{"class":704},[694,3945,3946],{"class":700},"message",[694,3948,3402],{"class":704},[694,3950,3951,3954,3956,3958,3960,3962],{"class":696,"line":831},[694,3952,3953],{"class":751},"    code",[694,3955,755],{"class":704},[694,3957,3941],{"class":700},[694,3959,705],{"class":704},[694,3961,691],{"class":700},[694,3963,3402],{"class":704},[694,3965,3966,3969,3971,3973,3975,3978,3980,3983],{"class":696,"line":851},[694,3967,3968],{"class":751},"    type",[694,3970,755],{"class":704},[694,3972,3941],{"class":700},[694,3974,705],{"class":704},[694,3976,3977],{"class":700},"constructor",[694,3979,705],{"class":704},[694,3981,3982],{"class":700},"name",[694,3984,3402],{"class":704},[694,3986,3987],{"class":696,"line":1080},[694,3988,3743],{"class":704},[694,3990,3991,3993],{"class":696,"line":1576},[694,3992,766],{"class":704},[694,3994,724],{"class":700},[672,3996,560],{"id":3997},"best-practices",[1424,3999,4001],{"id":4000},"use-meaningful-keys","Use Meaningful Keys",[683,4003,4006],{"className":685,"code":4004,"filename":4005,"language":688,"meta":689,"style":689},"\u002F\u002F Avoid generic keys\nlog.set({ data: { id: 123 } })\n\n\u002F\u002F Use specific, descriptive keys\nlog.set({ order: { id: 123, status: 'pending' } })\n","services\u002Forders.ts",[691,4007,4008,4013,4045,4049,4054],{"__ignoreMap":689},[694,4009,4010],{"class":696,"line":697},[694,4011,4012],{"class":2222},"\u002F\u002F Avoid generic keys\n",[694,4014,4015,4017,4019,4021,4023,4025,4028,4030,4032,4034,4036,4039,4041,4043],{"class":696,"line":727},[694,4016,981],{"class":700},[694,4018,705],{"class":704},[694,4020,986],{"class":708},[694,4022,712],{"class":700},[694,4024,991],{"class":704},[694,4026,4027],{"class":751}," data",[694,4029,755],{"class":704},[694,4031,748],{"class":704},[694,4033,1000],{"class":751},[694,4035,755],{"class":704},[694,4037,4038],{"class":878}," 123",[694,4040,806],{"class":704},[694,4042,806],{"class":704},[694,4044,724],{"class":700},[694,4046,4047],{"class":696,"line":771},[694,4048,955],{"emptyLinePlaceholder":954},[694,4050,4051],{"class":696,"line":811},[694,4052,4053],{"class":2222},"\u002F\u002F Use specific, descriptive keys\n",[694,4055,4056,4058,4060,4062,4064,4066,4069,4071,4073,4075,4077,4079,4081,4083,4085,4087,4090,4092,4094,4096],{"class":696,"line":831},[694,4057,981],{"class":700},[694,4059,705],{"class":704},[694,4061,986],{"class":708},[694,4063,712],{"class":700},[694,4065,991],{"class":704},[694,4067,4068],{"class":751}," order",[694,4070,755],{"class":704},[694,4072,748],{"class":704},[694,4074,1000],{"class":751},[694,4076,755],{"class":704},[694,4078,4038],{"class":878},[694,4080,745],{"class":704},[694,4082,1114],{"class":751},[694,4084,755],{"class":704},[694,4086,798],{"class":704},[694,4088,4089],{"class":718},"pending",[694,4091,715],{"class":704},[694,4093,806],{"class":704},[694,4095,806],{"class":704},[694,4097,724],{"class":700},[1424,4099,4101],{"id":4100},"group-related-data","Group Related Data",[683,4103,4105],{"className":685,"code":4104,"filename":3552,"language":688,"meta":689,"style":689},"\u002F\u002F Flat structure is hard to read\nlog.set({\n  userId: 1,\n  userEmail: 'a@b.com',\n  cartId: 2,\n  cartTotal: 100,\n})\n\n\u002F\u002F Grouped structure is clearer\nlog.set({\n  user: { id: 1, email: 'a@b.com' },\n  cart: { id: 2, total: 100 },\n})\n",[691,4106,4107,4112,4124,4134,4150,4162,4174,4180,4184,4189,4201,4231,4255],{"__ignoreMap":689},[694,4108,4109],{"class":696,"line":697},[694,4110,4111],{"class":2222},"\u002F\u002F Flat structure is hard to read\n",[694,4113,4114,4116,4118,4120,4122],{"class":696,"line":727},[694,4115,981],{"class":700},[694,4117,705],{"class":704},[694,4119,986],{"class":708},[694,4121,712],{"class":700},[694,4123,1644],{"class":704},[694,4125,4126,4128,4130,4132],{"class":696,"line":771},[694,4127,3571],{"class":751},[694,4129,755],{"class":704},[694,4131,1005],{"class":878},[694,4133,3402],{"class":704},[694,4135,4136,4139,4141,4143,4146,4148],{"class":696,"line":811},[694,4137,4138],{"class":751},"  userEmail",[694,4140,755],{"class":704},[694,4142,798],{"class":704},[694,4144,4145],{"class":718},"a@b.com",[694,4147,715],{"class":704},[694,4149,3402],{"class":704},[694,4151,4152,4155,4157,4160],{"class":696,"line":831},[694,4153,4154],{"class":751},"  cartId",[694,4156,755],{"class":704},[694,4158,4159],{"class":878}," 2",[694,4161,3402],{"class":704},[694,4163,4164,4167,4169,4172],{"class":696,"line":851},[694,4165,4166],{"class":751},"  cartTotal",[694,4168,755],{"class":704},[694,4170,4171],{"class":878}," 100",[694,4173,3402],{"class":704},[694,4175,4176,4178],{"class":696,"line":1080},[694,4177,766],{"class":704},[694,4179,724],{"class":700},[694,4181,4182],{"class":696,"line":1576},[694,4183,955],{"emptyLinePlaceholder":954},[694,4185,4186],{"class":696,"line":1605},[694,4187,4188],{"class":2222},"\u002F\u002F Grouped structure is clearer\n",[694,4190,4191,4193,4195,4197,4199],{"class":696,"line":1610},[694,4192,981],{"class":700},[694,4194,705],{"class":704},[694,4196,986],{"class":708},[694,4198,712],{"class":700},[694,4200,1644],{"class":704},[694,4202,4203,4206,4208,4210,4212,4214,4216,4218,4220,4222,4224,4226,4228],{"class":696,"line":1624},[694,4204,4205],{"class":751},"  user",[694,4207,755],{"class":704},[694,4209,748],{"class":704},[694,4211,1000],{"class":751},[694,4213,755],{"class":704},[694,4215,1005],{"class":878},[694,4217,745],{"class":704},[694,4219,1678],{"class":751},[694,4221,755],{"class":704},[694,4223,798],{"class":704},[694,4225,4145],{"class":718},[694,4227,715],{"class":704},[694,4229,4230],{"class":704}," },\n",[694,4232,4233,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253],{"class":696,"line":1647},[694,4234,3666],{"class":751},[694,4236,755],{"class":704},[694,4238,748],{"class":704},[694,4240,1000],{"class":751},[694,4242,755],{"class":704},[694,4244,4159],{"class":878},[694,4246,745],{"class":704},[694,4248,1066],{"class":751},[694,4250,755],{"class":704},[694,4252,4171],{"class":878},[694,4254,4230],{"class":704},[694,4256,4257,4259],{"class":696,"line":1707},[694,4258,766],{"class":704},[694,4260,724],{"class":700},[1424,4262,4264],{"id":4263},"add-context-incrementally","Add Context Incrementally",[608,4266,4267,4268,4271],{},"Call ",[691,4269,4270],{},"log.set()"," as you gather information:",[918,4273,4274,4581],{},[683,4275,4277],{"className":685,"code":4276,"filename":923,"language":688,"meta":689,"style":689},"import { useLogger } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  const user = await getUser(event)\n  log.set({ user: { id: user.id, plan: user.plan } })\n\n  const cart = await getCart(user.id)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const payment = await processPayment(cart)\n  log.set({ payment: { method: payment.method, status: payment.status } })\n\n  return { success: true }\n})\n",[691,4278,4279,4297,4301,4323,4339,4343,4362,4408,4412,4436,4486,4490,4510,4557,4561,4575],{"__ignoreMap":689},[694,4280,4281,4283,4285,4287,4289,4291,4293,4295],{"class":696,"line":697},[694,4282,931],{"class":930},[694,4284,748],{"class":704},[694,4286,936],{"class":700},[694,4288,806],{"class":704},[694,4290,941],{"class":930},[694,4292,798],{"class":704},[694,4294,946],{"class":718},[694,4296,949],{"class":704},[694,4298,4299],{"class":696,"line":727},[694,4300,955],{"emptyLinePlaceholder":954},[694,4302,4303,4305,4307,4309,4311,4313,4315,4317,4319,4321],{"class":696,"line":771},[694,4304,2065],{"class":930},[694,4306,2068],{"class":930},[694,4308,2071],{"class":708},[694,4310,712],{"class":700},[694,4312,2076],{"class":960},[694,4314,1630],{"class":704},[694,4316,2082],{"class":2081},[694,4318,2085],{"class":704},[694,4320,2088],{"class":960},[694,4322,2091],{"class":704},[694,4324,4325,4327,4329,4331,4333,4335,4337],{"class":696,"line":811},[694,4326,2096],{"class":960},[694,4328,2099],{"class":700},[694,4330,2102],{"class":704},[694,4332,936],{"class":708},[694,4334,712],{"class":751},[694,4336,2082],{"class":700},[694,4338,724],{"class":751},[694,4340,4341],{"class":696,"line":831},[694,4342,955],{"emptyLinePlaceholder":954},[694,4344,4345,4347,4349,4351,4353,4356,4358,4360],{"class":696,"line":851},[694,4346,2096],{"class":960},[694,4348,758],{"class":700},[694,4350,2102],{"class":704},[694,4352,1554],{"class":930},[694,4354,4355],{"class":708}," getUser",[694,4357,712],{"class":751},[694,4359,2082],{"class":700},[694,4361,724],{"class":751},[694,4363,4364,4366,4368,4370,4372,4374,4376,4378,4380,4382,4384,4386,4388,4390,4392,4394,4396,4398,4400,4402,4404,4406],{"class":696,"line":1080},[694,4365,2119],{"class":700},[694,4367,705],{"class":704},[694,4369,986],{"class":708},[694,4371,712],{"class":751},[694,4373,991],{"class":704},[694,4375,758],{"class":751},[694,4377,755],{"class":704},[694,4379,748],{"class":704},[694,4381,1000],{"class":751},[694,4383,755],{"class":704},[694,4385,758],{"class":700},[694,4387,705],{"class":704},[694,4389,1673],{"class":700},[694,4391,745],{"class":704},[694,4393,1010],{"class":751},[694,4395,755],{"class":704},[694,4397,758],{"class":700},[694,4399,705],{"class":704},[694,4401,1700],{"class":700},[694,4403,806],{"class":704},[694,4405,806],{"class":704},[694,4407,724],{"class":751},[694,4409,4410],{"class":696,"line":1576},[694,4411,955],{"emptyLinePlaceholder":954},[694,4413,4414,4416,4418,4420,4422,4425,4427,4430,4432,4434],{"class":696,"line":1605},[694,4415,2096],{"class":960},[694,4417,1040],{"class":700},[694,4419,2102],{"class":704},[694,4421,1554],{"class":930},[694,4423,4424],{"class":708}," getCart",[694,4426,712],{"class":751},[694,4428,4429],{"class":700},"user",[694,4431,705],{"class":704},[694,4433,1673],{"class":700},[694,4435,724],{"class":751},[694,4437,4438,4440,4442,4444,4446,4448,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468,4470,4472,4474,4476,4478,4480,4482,4484],{"class":696,"line":1610},[694,4439,2119],{"class":700},[694,4441,705],{"class":704},[694,4443,986],{"class":708},[694,4445,712],{"class":751},[694,4447,991],{"class":704},[694,4449,1040],{"class":751},[694,4451,755],{"class":704},[694,4453,748],{"class":704},[694,4455,1056],{"class":751},[694,4457,755],{"class":704},[694,4459,1040],{"class":700},[694,4461,705],{"class":704},[694,4463,3699],{"class":700},[694,4465,705],{"class":704},[694,4467,3704],{"class":700},[694,4469,745],{"class":704},[694,4471,1066],{"class":751},[694,4473,755],{"class":704},[694,4475,1040],{"class":700},[694,4477,705],{"class":704},[694,4479,3720],{"class":700},[694,4481,806],{"class":704},[694,4483,806],{"class":704},[694,4485,724],{"class":751},[694,4487,4488],{"class":696,"line":1624},[694,4489,955],{"emptyLinePlaceholder":954},[694,4491,4492,4494,4496,4498,4500,4503,4505,4508],{"class":696,"line":1647},[694,4493,2096],{"class":960},[694,4495,1093],{"class":700},[694,4497,2102],{"class":704},[694,4499,1554],{"class":930},[694,4501,4502],{"class":708}," processPayment",[694,4504,712],{"class":751},[694,4506,4507],{"class":700},"cart",[694,4509,724],{"class":751},[694,4511,4512,4514,4516,4518,4520,4522,4524,4526,4528,4530,4532,4534,4536,4538,4540,4542,4544,4546,4548,4551,4553,4555],{"class":696,"line":1707},[694,4513,2119],{"class":700},[694,4515,705],{"class":704},[694,4517,986],{"class":708},[694,4519,712],{"class":751},[694,4521,991],{"class":704},[694,4523,1093],{"class":751},[694,4525,755],{"class":704},[694,4527,748],{"class":704},[694,4529,1100],{"class":751},[694,4531,755],{"class":704},[694,4533,1093],{"class":700},[694,4535,705],{"class":704},[694,4537,1787],{"class":700},[694,4539,745],{"class":704},[694,4541,1114],{"class":751},[694,4543,755],{"class":704},[694,4545,1093],{"class":700},[694,4547,705],{"class":704},[694,4549,4550],{"class":700},"status",[694,4552,806],{"class":704},[694,4554,806],{"class":704},[694,4556,724],{"class":751},[694,4558,4559],{"class":696,"line":1716},[694,4560,955],{"emptyLinePlaceholder":954},[694,4562,4563,4565,4567,4569,4571,4573],{"class":696,"line":1722},[694,4564,2204],{"class":930},[694,4566,748],{"class":704},[694,4568,2209],{"class":751},[694,4570,755],{"class":704},[694,4572,2215],{"class":2214},[694,4574,1353],{"class":704},[694,4576,4577,4579],{"class":696,"line":1727},[694,4578,766],{"class":704},[694,4580,724],{"class":700},[683,4582,4584],{"className":1303,"code":4583,"filename":1305,"language":1306,"meta":689,"style":689},"[INFO] POST \u002Fapi\u002Fcheckout (456ms)\n  user: { id: 1, plan: 'pro' }\n  cart: { items: 3, total: 9999 }\n  payment: { method: 'card', status: 'success' }\n  status: 200\n",[691,4585,4586,4601,4621,4637,4663],{"__ignoreMap":689},[694,4587,4588,4590,4592,4594,4596,4599],{"class":696,"line":697},[694,4589,1313],{"class":704},[694,4591,1316],{"class":700},[694,4593,1319],{"class":704},[694,4595,1322],{"class":700},[694,4597,4598],{"class":1325},"456ms",[694,4600,724],{"class":700},[694,4602,4603,4605,4607,4609,4611,4613,4615,4617,4619],{"class":696,"line":727},[694,4604,1333],{"class":1325},[694,4606,748],{"class":718},[694,4608,1338],{"class":718},[694,4610,1341],{"class":718},[694,4612,1344],{"class":718},[694,4614,798],{"class":704},[694,4616,1017],{"class":718},[694,4618,715],{"class":704},[694,4620,1353],{"class":718},[694,4622,4623,4625,4627,4629,4631,4633,4635],{"class":696,"line":771},[694,4624,1358],{"class":1325},[694,4626,748],{"class":718},[694,4628,1368],{"class":718},[694,4630,1371],{"class":718},[694,4632,1374],{"class":718},[694,4634,1071],{"class":878},[694,4636,1353],{"class":718},[694,4638,4639,4641,4643,4645,4647,4649,4651,4653,4655,4657,4659,4661],{"class":696,"line":811},[694,4640,1383],{"class":1325},[694,4642,748],{"class":718},[694,4644,1388],{"class":718},[694,4646,798],{"class":704},[694,4648,1107],{"class":718},[694,4650,715],{"class":704},[694,4652,745],{"class":718},[694,4654,1399],{"class":718},[694,4656,798],{"class":704},[694,4658,1121],{"class":718},[694,4660,715],{"class":704},[694,4662,1353],{"class":718},[694,4664,4665,4667],{"class":696,"line":831},[694,4666,1412],{"class":1325},[694,4668,1415],{"class":878},[1424,4670,4672],{"id":4671},"handle-errors-gracefully","Handle Errors Gracefully",[608,4674,4675],{},"When errors occur, the wide event still emits with error context:",[2032,4677,4678,4904,5128,5344,5553],{},[683,4679,4681],{"className":685,"code":4680,"filename":240,"language":688,"meta":923,"style":689},"import { useLogger } from 'evlog'\n\nexport default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n\n  try {\n    const result = await processPayment(cart)\n    return result\n  } catch (err) {\n    log.set({\n      error: {\n        message: err.message,\n        code: err.code,\n        type: err.constructor.name,\n      },\n    })\n    throw err\n  }\n})\n",[691,4682,4683,4701,4705,4727,4743,4747,4754,4774,4782,4800,4813,4822,4837,4852,4871,4876,4883,4891,4897],{"__ignoreMap":689},[694,4684,4685,4687,4689,4691,4693,4695,4697,4699],{"class":696,"line":697},[694,4686,931],{"class":930},[694,4688,748],{"class":704},[694,4690,936],{"class":700},[694,4692,806],{"class":704},[694,4694,941],{"class":930},[694,4696,798],{"class":704},[694,4698,946],{"class":718},[694,4700,949],{"class":704},[694,4702,4703],{"class":696,"line":727},[694,4704,955],{"emptyLinePlaceholder":954},[694,4706,4707,4709,4711,4713,4715,4717,4719,4721,4723,4725],{"class":696,"line":771},[694,4708,2065],{"class":930},[694,4710,2068],{"class":930},[694,4712,2071],{"class":708},[694,4714,712],{"class":700},[694,4716,2076],{"class":960},[694,4718,1630],{"class":704},[694,4720,2082],{"class":2081},[694,4722,2085],{"class":704},[694,4724,2088],{"class":960},[694,4726,2091],{"class":704},[694,4728,4729,4731,4733,4735,4737,4739,4741],{"class":696,"line":811},[694,4730,2096],{"class":960},[694,4732,2099],{"class":700},[694,4734,2102],{"class":704},[694,4736,936],{"class":708},[694,4738,712],{"class":751},[694,4740,2082],{"class":700},[694,4742,724],{"class":751},[694,4744,4745],{"class":696,"line":831},[694,4746,955],{"emptyLinePlaceholder":954},[694,4748,4749,4752],{"class":696,"line":851},[694,4750,4751],{"class":930},"  try",[694,4753,2091],{"class":704},[694,4755,4756,4759,4762,4764,4766,4768,4770,4772],{"class":696,"line":1080},[694,4757,4758],{"class":960},"    const",[694,4760,4761],{"class":700}," result",[694,4763,2102],{"class":704},[694,4765,1554],{"class":930},[694,4767,4502],{"class":708},[694,4769,712],{"class":751},[694,4771,4507],{"class":700},[694,4773,724],{"class":751},[694,4775,4776,4779],{"class":696,"line":1576},[694,4777,4778],{"class":930},"    return",[694,4780,4781],{"class":700}," result\n",[694,4783,4784,4787,4790,4792,4795,4798],{"class":696,"line":1605},[694,4785,4786],{"class":704},"  }",[694,4788,4789],{"class":930}," catch",[694,4791,1630],{"class":751},[694,4793,4794],{"class":700},"err",[694,4796,4797],{"class":751},") ",[694,4799,1644],{"class":704},[694,4801,4802,4805,4807,4809,4811],{"class":696,"line":1610},[694,4803,4804],{"class":700},"    log",[694,4806,705],{"class":704},[694,4808,986],{"class":708},[694,4810,712],{"class":751},[694,4812,1644],{"class":704},[694,4814,4815,4818,4820],{"class":696,"line":1624},[694,4816,4817],{"class":751},"      error",[694,4819,755],{"class":704},[694,4821,2091],{"class":704},[694,4823,4824,4827,4829,4831,4833,4835],{"class":696,"line":1647},[694,4825,4826],{"class":751},"        message",[694,4828,755],{"class":704},[694,4830,3941],{"class":700},[694,4832,705],{"class":704},[694,4834,3946],{"class":700},[694,4836,3402],{"class":704},[694,4838,4839,4842,4844,4846,4848,4850],{"class":696,"line":1707},[694,4840,4841],{"class":751},"        code",[694,4843,755],{"class":704},[694,4845,3941],{"class":700},[694,4847,705],{"class":704},[694,4849,691],{"class":700},[694,4851,3402],{"class":704},[694,4853,4854,4857,4859,4861,4863,4865,4867,4869],{"class":696,"line":1716},[694,4855,4856],{"class":751},"        type",[694,4858,755],{"class":704},[694,4860,3941],{"class":700},[694,4862,705],{"class":704},[694,4864,3977],{"class":700},[694,4866,705],{"class":704},[694,4868,3982],{"class":700},[694,4870,3402],{"class":704},[694,4872,4873],{"class":696,"line":1722},[694,4874,4875],{"class":704},"      },\n",[694,4877,4878,4881],{"class":696,"line":1727},[694,4879,4880],{"class":704},"    }",[694,4882,724],{"class":751},[694,4884,4885,4888],{"class":696,"line":1760},[694,4886,4887],{"class":930},"    throw",[694,4889,4890],{"class":700}," err\n",[694,4892,4894],{"class":696,"line":4893},18,[694,4895,4896],{"class":704},"  }\n",[694,4898,4900,4902],{"class":696,"line":4899},19,[694,4901,766],{"class":704},[694,4903,724],{"class":700},[683,4905,4907],{"className":685,"code":4906,"filename":255,"language":688,"meta":2233,"style":689},"import { defineHandler } from 'nitro\u002Fh3'\nimport { useLogger } from 'evlog\u002Fnitro\u002Fv3'\n\nexport default defineHandler(async (event) => {\n  const log = useLogger(event)\n\n  try {\n    const result = await processPayment(cart)\n    return result\n  } catch (err) {\n    log.set({\n      error: {\n        message: err.message,\n        code: err.code,\n        type: err.constructor.name,\n      },\n    })\n    throw err\n  }\n})\n",[691,4908,4909,4927,4945,4949,4971,4987,4991,4997,5015,5021,5035,5047,5055,5069,5083,5101,5105,5111,5117,5121],{"__ignoreMap":689},[694,4910,4911,4913,4915,4917,4919,4921,4923,4925],{"class":696,"line":697},[694,4912,931],{"class":930},[694,4914,748],{"class":704},[694,4916,2244],{"class":700},[694,4918,806],{"class":704},[694,4920,941],{"class":930},[694,4922,798],{"class":704},[694,4924,2253],{"class":718},[694,4926,949],{"class":704},[694,4928,4929,4931,4933,4935,4937,4939,4941,4943],{"class":696,"line":727},[694,4930,931],{"class":930},[694,4932,748],{"class":704},[694,4934,936],{"class":700},[694,4936,806],{"class":704},[694,4938,941],{"class":930},[694,4940,798],{"class":704},[694,4942,2272],{"class":718},[694,4944,949],{"class":704},[694,4946,4947],{"class":696,"line":771},[694,4948,955],{"emptyLinePlaceholder":954},[694,4950,4951,4953,4955,4957,4959,4961,4963,4965,4967,4969],{"class":696,"line":811},[694,4952,2065],{"class":930},[694,4954,2068],{"class":930},[694,4956,2244],{"class":708},[694,4958,712],{"class":700},[694,4960,2076],{"class":960},[694,4962,1630],{"class":704},[694,4964,2082],{"class":2081},[694,4966,2085],{"class":704},[694,4968,2088],{"class":960},[694,4970,2091],{"class":704},[694,4972,4973,4975,4977,4979,4981,4983,4985],{"class":696,"line":831},[694,4974,2096],{"class":960},[694,4976,2099],{"class":700},[694,4978,2102],{"class":704},[694,4980,936],{"class":708},[694,4982,712],{"class":751},[694,4984,2082],{"class":700},[694,4986,724],{"class":751},[694,4988,4989],{"class":696,"line":851},[694,4990,955],{"emptyLinePlaceholder":954},[694,4992,4993,4995],{"class":696,"line":1080},[694,4994,4751],{"class":930},[694,4996,2091],{"class":704},[694,4998,4999,5001,5003,5005,5007,5009,5011,5013],{"class":696,"line":1576},[694,5000,4758],{"class":960},[694,5002,4761],{"class":700},[694,5004,2102],{"class":704},[694,5006,1554],{"class":930},[694,5008,4502],{"class":708},[694,5010,712],{"class":751},[694,5012,4507],{"class":700},[694,5014,724],{"class":751},[694,5016,5017,5019],{"class":696,"line":1605},[694,5018,4778],{"class":930},[694,5020,4781],{"class":700},[694,5022,5023,5025,5027,5029,5031,5033],{"class":696,"line":1610},[694,5024,4786],{"class":704},[694,5026,4789],{"class":930},[694,5028,1630],{"class":751},[694,5030,4794],{"class":700},[694,5032,4797],{"class":751},[694,5034,1644],{"class":704},[694,5036,5037,5039,5041,5043,5045],{"class":696,"line":1624},[694,5038,4804],{"class":700},[694,5040,705],{"class":704},[694,5042,986],{"class":708},[694,5044,712],{"class":751},[694,5046,1644],{"class":704},[694,5048,5049,5051,5053],{"class":696,"line":1647},[694,5050,4817],{"class":751},[694,5052,755],{"class":704},[694,5054,2091],{"class":704},[694,5056,5057,5059,5061,5063,5065,5067],{"class":696,"line":1707},[694,5058,4826],{"class":751},[694,5060,755],{"class":704},[694,5062,3941],{"class":700},[694,5064,705],{"class":704},[694,5066,3946],{"class":700},[694,5068,3402],{"class":704},[694,5070,5071,5073,5075,5077,5079,5081],{"class":696,"line":1716},[694,5072,4841],{"class":751},[694,5074,755],{"class":704},[694,5076,3941],{"class":700},[694,5078,705],{"class":704},[694,5080,691],{"class":700},[694,5082,3402],{"class":704},[694,5084,5085,5087,5089,5091,5093,5095,5097,5099],{"class":696,"line":1722},[694,5086,4856],{"class":751},[694,5088,755],{"class":704},[694,5090,3941],{"class":700},[694,5092,705],{"class":704},[694,5094,3977],{"class":700},[694,5096,705],{"class":704},[694,5098,3982],{"class":700},[694,5100,3402],{"class":704},[694,5102,5103],{"class":696,"line":1727},[694,5104,4875],{"class":704},[694,5106,5107,5109],{"class":696,"line":1760},[694,5108,4880],{"class":704},[694,5110,724],{"class":751},[694,5112,5113,5115],{"class":696,"line":4893},[694,5114,4887],{"class":930},[694,5116,4890],{"class":700},[694,5118,5119],{"class":696,"line":4899},[694,5120,4896],{"class":704},[694,5122,5124,5126],{"class":696,"line":5123},20,[694,5125,766],{"class":704},[694,5127,724],{"class":700},[683,5129,5131],{"className":685,"code":5130,"filename":245,"language":688,"meta":2432,"style":689},"import { withEvlog, useLogger } from '@\u002Flib\u002Fevlog'\n\nexport const POST = withEvlog(async () => {\n  const log = useLogger()\n\n  try {\n    const result = await processPayment(cart)\n    return Response.json(result)\n  } catch (err) {\n    log.set({\n      error: {\n        message: err.message,\n        code: err.code,\n        type: err.constructor.name,\n      },\n    })\n    throw err\n  }\n})\n",[691,5132,5133,5155,5159,5181,5193,5197,5203,5221,5238,5252,5264,5272,5286,5300,5318,5322,5328,5334,5338],{"__ignoreMap":689},[694,5134,5135,5137,5139,5141,5143,5145,5147,5149,5151,5153],{"class":696,"line":697},[694,5136,931],{"class":930},[694,5138,748],{"class":704},[694,5140,2443],{"class":700},[694,5142,745],{"class":704},[694,5144,936],{"class":700},[694,5146,806],{"class":704},[694,5148,941],{"class":930},[694,5150,798],{"class":704},[694,5152,2456],{"class":718},[694,5154,949],{"class":704},[694,5156,5157],{"class":696,"line":727},[694,5158,955],{"emptyLinePlaceholder":954},[694,5160,5161,5163,5165,5167,5169,5171,5173,5175,5177,5179],{"class":696,"line":771},[694,5162,2065],{"class":930},[694,5164,2469],{"class":960},[694,5166,2472],{"class":700},[694,5168,967],{"class":704},[694,5170,2443],{"class":708},[694,5172,712],{"class":700},[694,5174,2076],{"class":960},[694,5176,2483],{"class":704},[694,5178,2088],{"class":960},[694,5180,2091],{"class":704},[694,5182,5183,5185,5187,5189,5191],{"class":696,"line":811},[694,5184,2096],{"class":960},[694,5186,2099],{"class":700},[694,5188,2102],{"class":704},[694,5190,936],{"class":708},[694,5192,1300],{"class":751},[694,5194,5195],{"class":696,"line":831},[694,5196,955],{"emptyLinePlaceholder":954},[694,5198,5199,5201],{"class":696,"line":851},[694,5200,4751],{"class":930},[694,5202,2091],{"class":704},[694,5204,5205,5207,5209,5211,5213,5215,5217,5219],{"class":696,"line":1080},[694,5206,4758],{"class":960},[694,5208,4761],{"class":700},[694,5210,2102],{"class":704},[694,5212,1554],{"class":930},[694,5214,4502],{"class":708},[694,5216,712],{"class":751},[694,5218,4507],{"class":700},[694,5220,724],{"class":751},[694,5222,5223,5225,5227,5229,5231,5233,5236],{"class":696,"line":1576},[694,5224,4778],{"class":930},[694,5226,2594],{"class":700},[694,5228,705],{"class":704},[694,5230,2599],{"class":708},[694,5232,712],{"class":751},[694,5234,5235],{"class":700},"result",[694,5237,724],{"class":751},[694,5239,5240,5242,5244,5246,5248,5250],{"class":696,"line":1605},[694,5241,4786],{"class":704},[694,5243,4789],{"class":930},[694,5245,1630],{"class":751},[694,5247,4794],{"class":700},[694,5249,4797],{"class":751},[694,5251,1644],{"class":704},[694,5253,5254,5256,5258,5260,5262],{"class":696,"line":1610},[694,5255,4804],{"class":700},[694,5257,705],{"class":704},[694,5259,986],{"class":708},[694,5261,712],{"class":751},[694,5263,1644],{"class":704},[694,5265,5266,5268,5270],{"class":696,"line":1624},[694,5267,4817],{"class":751},[694,5269,755],{"class":704},[694,5271,2091],{"class":704},[694,5273,5274,5276,5278,5280,5282,5284],{"class":696,"line":1647},[694,5275,4826],{"class":751},[694,5277,755],{"class":704},[694,5279,3941],{"class":700},[694,5281,705],{"class":704},[694,5283,3946],{"class":700},[694,5285,3402],{"class":704},[694,5287,5288,5290,5292,5294,5296,5298],{"class":696,"line":1707},[694,5289,4841],{"class":751},[694,5291,755],{"class":704},[694,5293,3941],{"class":700},[694,5295,705],{"class":704},[694,5297,691],{"class":700},[694,5299,3402],{"class":704},[694,5301,5302,5304,5306,5308,5310,5312,5314,5316],{"class":696,"line":1716},[694,5303,4856],{"class":751},[694,5305,755],{"class":704},[694,5307,3941],{"class":700},[694,5309,705],{"class":704},[694,5311,3977],{"class":700},[694,5313,705],{"class":704},[694,5315,3982],{"class":700},[694,5317,3402],{"class":704},[694,5319,5320],{"class":696,"line":1722},[694,5321,4875],{"class":704},[694,5323,5324,5326],{"class":696,"line":1727},[694,5325,4880],{"class":704},[694,5327,724],{"class":751},[694,5329,5330,5332],{"class":696,"line":1760},[694,5331,4887],{"class":930},[694,5333,4890],{"class":700},[694,5335,5336],{"class":696,"line":4893},[694,5337,4896],{"class":704},[694,5339,5340,5342],{"class":696,"line":4899},[694,5341,766],{"class":704},[694,5343,724],{"class":700},[683,5345,5347],{"className":685,"code":5346,"filename":275,"language":688,"meta":2627,"style":689},"app.post('\u002Fapi\u002Fcheckout', async (c) => {\n  const log = c.get('log')\n\n  try {\n    const result = await processPayment(cart)\n    return c.json(result)\n  } catch (err) {\n    log.set({\n      error: {\n        message: err.message,\n        code: err.code,\n        type: err.constructor.name,\n      },\n    })\n    throw err\n  }\n})\n",[691,5348,5349,5379,5403,5407,5413,5431,5447,5461,5473,5481,5495,5509,5527,5531,5537,5543,5547],{"__ignoreMap":689},[694,5350,5351,5353,5355,5357,5359,5361,5363,5365,5367,5369,5371,5373,5375,5377],{"class":696,"line":697},[694,5352,2634],{"class":700},[694,5354,705],{"class":704},[694,5356,2639],{"class":708},[694,5358,712],{"class":700},[694,5360,715],{"class":704},[694,5362,1900],{"class":718},[694,5364,715],{"class":704},[694,5366,745],{"class":704},[694,5368,2652],{"class":960},[694,5370,1630],{"class":704},[694,5372,2657],{"class":2081},[694,5374,2085],{"class":704},[694,5376,2088],{"class":960},[694,5378,2091],{"class":704},[694,5380,5381,5383,5385,5387,5389,5391,5393,5395,5397,5399,5401],{"class":696,"line":727},[694,5382,2096],{"class":960},[694,5384,2099],{"class":700},[694,5386,2102],{"class":704},[694,5388,2674],{"class":700},[694,5390,705],{"class":704},[694,5392,2679],{"class":708},[694,5394,712],{"class":751},[694,5396,715],{"class":704},[694,5398,981],{"class":718},[694,5400,715],{"class":704},[694,5402,724],{"class":751},[694,5404,5405],{"class":696,"line":771},[694,5406,955],{"emptyLinePlaceholder":954},[694,5408,5409,5411],{"class":696,"line":811},[694,5410,4751],{"class":930},[694,5412,2091],{"class":704},[694,5414,5415,5417,5419,5421,5423,5425,5427,5429],{"class":696,"line":831},[694,5416,4758],{"class":960},[694,5418,4761],{"class":700},[694,5420,2102],{"class":704},[694,5422,1554],{"class":930},[694,5424,4502],{"class":708},[694,5426,712],{"class":751},[694,5428,4507],{"class":700},[694,5430,724],{"class":751},[694,5432,5433,5435,5437,5439,5441,5443,5445],{"class":696,"line":851},[694,5434,4778],{"class":930},[694,5436,2674],{"class":700},[694,5438,705],{"class":704},[694,5440,2599],{"class":708},[694,5442,712],{"class":751},[694,5444,5235],{"class":700},[694,5446,724],{"class":751},[694,5448,5449,5451,5453,5455,5457,5459],{"class":696,"line":1080},[694,5450,4786],{"class":704},[694,5452,4789],{"class":930},[694,5454,1630],{"class":751},[694,5456,4794],{"class":700},[694,5458,4797],{"class":751},[694,5460,1644],{"class":704},[694,5462,5463,5465,5467,5469,5471],{"class":696,"line":1576},[694,5464,4804],{"class":700},[694,5466,705],{"class":704},[694,5468,986],{"class":708},[694,5470,712],{"class":751},[694,5472,1644],{"class":704},[694,5474,5475,5477,5479],{"class":696,"line":1605},[694,5476,4817],{"class":751},[694,5478,755],{"class":704},[694,5480,2091],{"class":704},[694,5482,5483,5485,5487,5489,5491,5493],{"class":696,"line":1610},[694,5484,4826],{"class":751},[694,5486,755],{"class":704},[694,5488,3941],{"class":700},[694,5490,705],{"class":704},[694,5492,3946],{"class":700},[694,5494,3402],{"class":704},[694,5496,5497,5499,5501,5503,5505,5507],{"class":696,"line":1624},[694,5498,4841],{"class":751},[694,5500,755],{"class":704},[694,5502,3941],{"class":700},[694,5504,705],{"class":704},[694,5506,691],{"class":700},[694,5508,3402],{"class":704},[694,5510,5511,5513,5515,5517,5519,5521,5523,5525],{"class":696,"line":1647},[694,5512,4856],{"class":751},[694,5514,755],{"class":704},[694,5516,3941],{"class":700},[694,5518,705],{"class":704},[694,5520,3977],{"class":700},[694,5522,705],{"class":704},[694,5524,3982],{"class":700},[694,5526,3402],{"class":704},[694,5528,5529],{"class":696,"line":1707},[694,5530,4875],{"class":704},[694,5532,5533,5535],{"class":696,"line":1716},[694,5534,4880],{"class":704},[694,5536,724],{"class":751},[694,5538,5539,5541],{"class":696,"line":1722},[694,5540,4887],{"class":930},[694,5542,4890],{"class":700},[694,5544,5545],{"class":696,"line":1727},[694,5546,4896],{"class":704},[694,5548,5549,5551],{"class":696,"line":1760},[694,5550,766],{"class":704},[694,5552,724],{"class":700},[683,5554,5556],{"className":685,"code":5555,"filename":270,"language":688,"meta":2627,"style":689},"app.post('\u002Fapi\u002Fcheckout', async (req, res) => {\n  const log = req.log\n\n  try {\n    const result = await processPayment(cart)\n    return res.json(result)\n  } catch (err) {\n    log.set({\n      error: {\n        message: err.message,\n        code: err.code,\n        type: err.constructor.name,\n      },\n    })\n    throw err\n  }\n})\n",[691,5557,5558,5592,5606,5610,5616,5634,5650,5664,5676,5684,5698,5712,5730,5734,5740,5746,5750],{"__ignoreMap":689},[694,5559,5560,5562,5564,5566,5568,5570,5572,5574,5576,5578,5580,5582,5584,5586,5588,5590],{"class":696,"line":697},[694,5561,2634],{"class":700},[694,5563,705],{"class":704},[694,5565,2639],{"class":708},[694,5567,712],{"class":700},[694,5569,715],{"class":704},[694,5571,1900],{"class":718},[694,5573,715],{"class":704},[694,5575,745],{"class":704},[694,5577,2652],{"class":960},[694,5579,1630],{"class":704},[694,5581,2841],{"class":2081},[694,5583,745],{"class":704},[694,5585,2846],{"class":2081},[694,5587,2085],{"class":704},[694,5589,2088],{"class":960},[694,5591,2091],{"class":704},[694,5593,5594,5596,5598,5600,5602,5604],{"class":696,"line":727},[694,5595,2096],{"class":960},[694,5597,2099],{"class":700},[694,5599,2102],{"class":704},[694,5601,2863],{"class":700},[694,5603,705],{"class":704},[694,5605,2868],{"class":700},[694,5607,5608],{"class":696,"line":771},[694,5609,955],{"emptyLinePlaceholder":954},[694,5611,5612,5614],{"class":696,"line":811},[694,5613,4751],{"class":930},[694,5615,2091],{"class":704},[694,5617,5618,5620,5622,5624,5626,5628,5630,5632],{"class":696,"line":831},[694,5619,4758],{"class":960},[694,5621,4761],{"class":700},[694,5623,2102],{"class":704},[694,5625,1554],{"class":930},[694,5627,4502],{"class":708},[694,5629,712],{"class":751},[694,5631,4507],{"class":700},[694,5633,724],{"class":751},[694,5635,5636,5638,5640,5642,5644,5646,5648],{"class":696,"line":851},[694,5637,4778],{"class":930},[694,5639,2846],{"class":700},[694,5641,705],{"class":704},[694,5643,2599],{"class":708},[694,5645,712],{"class":751},[694,5647,5235],{"class":700},[694,5649,724],{"class":751},[694,5651,5652,5654,5656,5658,5660,5662],{"class":696,"line":1080},[694,5653,4786],{"class":704},[694,5655,4789],{"class":930},[694,5657,1630],{"class":751},[694,5659,4794],{"class":700},[694,5661,4797],{"class":751},[694,5663,1644],{"class":704},[694,5665,5666,5668,5670,5672,5674],{"class":696,"line":1576},[694,5667,4804],{"class":700},[694,5669,705],{"class":704},[694,5671,986],{"class":708},[694,5673,712],{"class":751},[694,5675,1644],{"class":704},[694,5677,5678,5680,5682],{"class":696,"line":1605},[694,5679,4817],{"class":751},[694,5681,755],{"class":704},[694,5683,2091],{"class":704},[694,5685,5686,5688,5690,5692,5694,5696],{"class":696,"line":1610},[694,5687,4826],{"class":751},[694,5689,755],{"class":704},[694,5691,3941],{"class":700},[694,5693,705],{"class":704},[694,5695,3946],{"class":700},[694,5697,3402],{"class":704},[694,5699,5700,5702,5704,5706,5708,5710],{"class":696,"line":1624},[694,5701,4841],{"class":751},[694,5703,755],{"class":704},[694,5705,3941],{"class":700},[694,5707,705],{"class":704},[694,5709,691],{"class":700},[694,5711,3402],{"class":704},[694,5713,5714,5716,5718,5720,5722,5724,5726,5728],{"class":696,"line":1647},[694,5715,4856],{"class":751},[694,5717,755],{"class":704},[694,5719,3941],{"class":700},[694,5721,705],{"class":704},[694,5723,3977],{"class":700},[694,5725,705],{"class":704},[694,5727,3982],{"class":700},[694,5729,3402],{"class":704},[694,5731,5732],{"class":696,"line":1707},[694,5733,4875],{"class":704},[694,5735,5736,5738],{"class":696,"line":1716},[694,5737,4880],{"class":704},[694,5739,724],{"class":751},[694,5741,5742,5744],{"class":696,"line":1722},[694,5743,4887],{"class":930},[694,5745,4890],{"class":700},[694,5747,5748],{"class":696,"line":1727},[694,5749,4896],{"class":704},[694,5751,5752,5754],{"class":696,"line":1760},[694,5753,766],{"class":704},[694,5755,724],{"class":700},[683,5757,5759],{"className":1303,"code":5758,"filename":1305,"language":1306,"meta":689,"style":689},"ERROR [checkout] POST \u002Fapi\u002Fcheckout 402 in 123ms\n  ├─ error: Card declined\n  │     at server\u002Fapi\u002Fcheckout.post.ts:42\n  │   ❯ 42 ┃ throw createError({ code: 'CARD_DECLINED', ... })\n  │     Why: Issuer declined the charge\n  │     Fix: Ask the customer to use another card\n  │     stack (3 frames hidden in node_modules)\n  ├─ user: id=1 plan=pro\n  └─ cart: items=3 total=9999\n",[691,5760,5761,5769,5783,5794,5817,5836,5863,5887,5903],{"__ignoreMap":689},[694,5762,5763,5766],{"class":696,"line":697},[694,5764,5765],{"class":1325},"ERROR",[694,5767,5768],{"class":700}," [checkout] POST \u002Fapi\u002Fcheckout 402 in 123ms\n",[694,5770,5771,5774,5777,5780],{"class":696,"line":727},[694,5772,5773],{"class":1325},"  ├─",[694,5775,5776],{"class":718}," error:",[694,5778,5779],{"class":718}," Card",[694,5781,5782],{"class":718}," declined\n",[694,5784,5785,5788,5791],{"class":696,"line":771},[694,5786,5787],{"class":1325},"  │",[694,5789,5790],{"class":718},"     at",[694,5792,5793],{"class":718}," server\u002Fapi\u002Fcheckout.post.ts:42\n",[694,5795,5796,5798,5801,5803,5806,5809,5812,5814],{"class":696,"line":811},[694,5797,5787],{"class":1325},[694,5799,5800],{"class":718},"   ❯",[694,5802,1051],{"class":878},[694,5804,5805],{"class":718}," ┃",[694,5807,5808],{"class":718}," throw",[694,5810,5811],{"class":718}," createError",[694,5813,712],{"class":704},[694,5815,5816],{"class":700},"{ code: 'CARD_DECLINED', ... })\n",[694,5818,5819,5821,5824,5827,5830,5833],{"class":696,"line":831},[694,5820,5787],{"class":1325},[694,5822,5823],{"class":718},"     Why:",[694,5825,5826],{"class":718}," Issuer",[694,5828,5829],{"class":718}," declined",[694,5831,5832],{"class":718}," the",[694,5834,5835],{"class":718}," charge\n",[694,5837,5838,5840,5843,5846,5848,5851,5854,5857,5860],{"class":696,"line":851},[694,5839,5787],{"class":1325},[694,5841,5842],{"class":718},"     Fix:",[694,5844,5845],{"class":718}," Ask",[694,5847,5832],{"class":718},[694,5849,5850],{"class":718}," customer",[694,5852,5853],{"class":718}," to",[694,5855,5856],{"class":718}," use",[694,5858,5859],{"class":718}," another",[694,5861,5862],{"class":718}," card\n",[694,5864,5865,5867,5870,5873,5876,5879,5882,5885],{"class":696,"line":1080},[694,5866,5787],{"class":1325},[694,5868,5869],{"class":718},"     stack",[694,5871,5872],{"class":700}," (3 ",[694,5874,5875],{"class":718},"frames",[694,5877,5878],{"class":718}," hidden",[694,5880,5881],{"class":718}," in",[694,5883,5884],{"class":718}," node_modules",[694,5886,724],{"class":704},[694,5888,5889,5891,5894,5897,5900],{"class":696,"line":1576},[694,5890,5773],{"class":1325},[694,5892,5893],{"class":718}," user:",[694,5895,5896],{"class":718}," id=",[694,5898,5899],{"class":878},"1",[694,5901,5902],{"class":718}," plan=pro\n",[694,5904,5905,5908,5911,5914,5917,5920],{"class":696,"line":1605},[694,5906,5907],{"class":1325},"  └─",[694,5909,5910],{"class":718}," cart:",[694,5912,5913],{"class":718}," items=",[694,5915,5916],{"class":878},"3",[694,5918,5919],{"class":718}," total=",[694,5921,5922],{"class":878},"9999\n",[1424,5924,5926],{"id":5925},"setting-the-level-manually","Setting the Level Manually",[608,5928,5929,5932,5933,5935,5936,5939,5940,5943,5944,5946,5947,5950],{},[691,5930,5931],{},"log.error(err)"," populates the ",[691,5934,3021],{}," field with ",[691,5937,5938],{},"{ name, message, stack }"," and promotes the wide event to ",[691,5941,5942],{},"level: 'error'",". When you want to control the ",[691,5945,3021],{}," field yourself (typed error codes, no stack, or richer custom shapes), use ",[691,5948,5949],{},"log.setLevel()"," to promote the level without touching the context:",[683,5952,5954],{"className":685,"code":5953,"language":688,"meta":689,"style":689},"log.setLevel('error')\nlog.set({\n  error: {\n    code: 'PAYMENT_DECLINED',\n    reason: 'insufficient_funds',\n  },\n})\n",[691,5955,5956,5975,5987,5995,6010,6026,6030],{"__ignoreMap":689},[694,5957,5958,5960,5962,5965,5967,5969,5971,5973],{"class":696,"line":697},[694,5959,981],{"class":700},[694,5961,705],{"class":704},[694,5963,5964],{"class":708},"setLevel",[694,5966,712],{"class":700},[694,5968,715],{"class":704},[694,5970,3021],{"class":718},[694,5972,715],{"class":704},[694,5974,724],{"class":700},[694,5976,5977,5979,5981,5983,5985],{"class":696,"line":727},[694,5978,981],{"class":700},[694,5980,705],{"class":704},[694,5982,986],{"class":708},[694,5984,712],{"class":700},[694,5986,1644],{"class":704},[694,5988,5989,5991,5993],{"class":696,"line":771},[694,5990,3927],{"class":751},[694,5992,755],{"class":704},[694,5994,2091],{"class":704},[694,5996,5997,5999,6001,6003,6006,6008],{"class":696,"line":811},[694,5998,3953],{"class":751},[694,6000,755],{"class":704},[694,6002,798],{"class":704},[694,6004,6005],{"class":718},"PAYMENT_DECLINED",[694,6007,715],{"class":704},[694,6009,3402],{"class":704},[694,6011,6012,6015,6017,6019,6022,6024],{"class":696,"line":831},[694,6013,6014],{"class":751},"    reason",[694,6016,755],{"class":704},[694,6018,798],{"class":704},[694,6020,6021],{"class":718},"insufficient_funds",[694,6023,715],{"class":704},[694,6025,3402],{"class":704},[694,6027,6028],{"class":696,"line":851},[694,6029,3743],{"class":704},[694,6031,6032,6034],{"class":696,"line":1080},[694,6033,766],{"class":704},[694,6035,724],{"class":700},[608,6037,6038,6041,6042,6045,6046,6049,6050,6053,6054,6056],{},[691,6039,6040],{},"setLevel()"," accepts ",[691,6043,6044],{},"'error' | 'warn' | 'info' | 'debug'"," and wins over the level computed from ",[691,6047,6048],{},".error()"," \u002F ",[691,6051,6052],{},".warn()",". Combine it with ",[691,6055,4270],{}," to keep the wide event tidy while still routing through error-level sampling and drains.",[672,6058,6060],{"id":6059},"choose-how-the-event-is-rendered","Choose how the event is rendered",[608,6062,6063],{},"evlog automatically switches between formats based on environment: pretty in development, JSON in production. This is the default behavior, no configuration needed.",[918,6065,6066,6148],{},[683,6067,6070],{"className":1303,"code":6068,"filename":6069,"language":1306,"meta":689,"style":689},"[INFO] POST \u002Fapi\u002Fcheckout (234ms)\n  user: { id: 1, plan: 'pro' }\n  cart: { items: 3, total: 9999 }\n  payment: { method: 'card', status: 'success' }\n","Development (Pretty)",[691,6071,6072,6086,6106,6122],{"__ignoreMap":689},[694,6073,6074,6076,6078,6080,6082,6084],{"class":696,"line":697},[694,6075,1313],{"class":704},[694,6077,1316],{"class":700},[694,6079,1319],{"class":704},[694,6081,1322],{"class":700},[694,6083,1326],{"class":1325},[694,6085,724],{"class":700},[694,6087,6088,6090,6092,6094,6096,6098,6100,6102,6104],{"class":696,"line":727},[694,6089,1333],{"class":1325},[694,6091,748],{"class":718},[694,6093,1338],{"class":718},[694,6095,1341],{"class":718},[694,6097,1344],{"class":718},[694,6099,798],{"class":704},[694,6101,1017],{"class":718},[694,6103,715],{"class":704},[694,6105,1353],{"class":718},[694,6107,6108,6110,6112,6114,6116,6118,6120],{"class":696,"line":771},[694,6109,1358],{"class":1325},[694,6111,748],{"class":718},[694,6113,1368],{"class":718},[694,6115,1371],{"class":718},[694,6117,1374],{"class":718},[694,6119,1071],{"class":878},[694,6121,1353],{"class":718},[694,6123,6124,6126,6128,6130,6132,6134,6136,6138,6140,6142,6144,6146],{"class":696,"line":811},[694,6125,1383],{"class":1325},[694,6127,748],{"class":718},[694,6129,1388],{"class":718},[694,6131,798],{"class":704},[694,6133,1107],{"class":718},[694,6135,715],{"class":704},[694,6137,745],{"class":718},[694,6139,1399],{"class":718},[694,6141,798],{"class":704},[694,6143,1121],{"class":718},[694,6145,715],{"class":704},[694,6147,1353],{"class":718},[683,6149,6153],{"className":6150,"code":6151,"filename":6152,"language":2599,"meta":689,"style":689},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"level\": \"info\",\n  \"method\": \"POST\",\n  \"path\": \"\u002Fapi\u002Fcheckout\",\n  \"duration\": 234,\n  \"user\": { \"id\": 1, \"plan\": \"pro\" },\n  \"cart\": { \"items\": 3, \"total\": 9999 },\n  \"payment\": { \"method\": \"card\", \"status\": \"success\" }\n}\n","Production (JSON)",[691,6154,6155,6159,6181,6199,6217,6232,6272,6308,6353],{"__ignoreMap":689},[694,6156,6157],{"class":696,"line":697},[694,6158,1644],{"class":704},[694,6160,6161,6164,6167,6170,6172,6175,6177,6179],{"class":696,"line":727},[694,6162,6163],{"class":704},"  \"",[694,6165,6166],{"class":960},"level",[694,6168,6169],{"class":704},"\"",[694,6171,755],{"class":704},[694,6173,6174],{"class":704}," \"",[694,6176,709],{"class":718},[694,6178,6169],{"class":704},[694,6180,3402],{"class":704},[694,6182,6183,6185,6187,6189,6191,6193,6195,6197],{"class":696,"line":771},[694,6184,6163],{"class":704},[694,6186,1787],{"class":960},[694,6188,6169],{"class":704},[694,6190,755],{"class":704},[694,6192,6174],{"class":704},[694,6194,1886],{"class":718},[694,6196,6169],{"class":704},[694,6198,3402],{"class":704},[694,6200,6201,6203,6205,6207,6209,6211,6213,6215],{"class":696,"line":811},[694,6202,6163],{"class":704},[694,6204,1791],{"class":960},[694,6206,6169],{"class":704},[694,6208,755],{"class":704},[694,6210,6174],{"class":704},[694,6212,1900],{"class":718},[694,6214,6169],{"class":704},[694,6216,3402],{"class":704},[694,6218,6219,6221,6224,6226,6228,6230],{"class":696,"line":831},[694,6220,6163],{"class":704},[694,6222,6223],{"class":960},"duration",[694,6225,6169],{"class":704},[694,6227,755],{"class":704},[694,6229,879],{"class":878},[694,6231,3402],{"class":704},[694,6233,6234,6236,6238,6240,6242,6244,6246,6248,6250,6252,6254,6256,6258,6260,6262,6264,6266,6268,6270],{"class":696,"line":851},[694,6235,6163],{"class":704},[694,6237,4429],{"class":960},[694,6239,6169],{"class":704},[694,6241,755],{"class":704},[694,6243,748],{"class":704},[694,6245,6174],{"class":704},[694,6247,1673],{"class":1325},[694,6249,6169],{"class":704},[694,6251,755],{"class":704},[694,6253,1005],{"class":878},[694,6255,745],{"class":704},[694,6257,6174],{"class":704},[694,6259,1700],{"class":1325},[694,6261,6169],{"class":704},[694,6263,755],{"class":704},[694,6265,6174],{"class":704},[694,6267,1017],{"class":718},[694,6269,6169],{"class":704},[694,6271,4230],{"class":704},[694,6273,6274,6276,6278,6280,6282,6284,6286,6288,6290,6292,6294,6296,6298,6300,6302,6304,6306],{"class":696,"line":1080},[694,6275,6163],{"class":704},[694,6277,4507],{"class":960},[694,6279,6169],{"class":704},[694,6281,755],{"class":704},[694,6283,748],{"class":704},[694,6285,6174],{"class":704},[694,6287,3699],{"class":1325},[694,6289,6169],{"class":704},[694,6291,755],{"class":704},[694,6293,1061],{"class":878},[694,6295,745],{"class":704},[694,6297,6174],{"class":704},[694,6299,3720],{"class":1325},[694,6301,6169],{"class":704},[694,6303,755],{"class":704},[694,6305,1071],{"class":878},[694,6307,4230],{"class":704},[694,6309,6310,6312,6315,6317,6319,6321,6323,6325,6327,6329,6331,6333,6335,6337,6339,6341,6343,6345,6347,6349,6351],{"class":696,"line":1576},[694,6311,6163],{"class":704},[694,6313,6314],{"class":960},"payment",[694,6316,6169],{"class":704},[694,6318,755],{"class":704},[694,6320,748],{"class":704},[694,6322,6174],{"class":704},[694,6324,1787],{"class":1325},[694,6326,6169],{"class":704},[694,6328,755],{"class":704},[694,6330,6174],{"class":704},[694,6332,1107],{"class":718},[694,6334,6169],{"class":704},[694,6336,745],{"class":704},[694,6338,6174],{"class":704},[694,6340,4550],{"class":1325},[694,6342,6169],{"class":704},[694,6344,755],{"class":704},[694,6346,6174],{"class":704},[694,6348,1121],{"class":718},[694,6350,6169],{"class":704},[694,6352,1353],{"class":704},[694,6354,6355],{"class":696,"line":1605},[694,6356,1719],{"class":704},[672,6358,6360],{"id":6359},"next-steps","Next Steps",[634,6362,6363,6368,6373,6378],{},[637,6364,6365,6367],{},[618,6366,46],{"href":47}," - Fire-and-forget logs when you don't need context accumulation",[637,6369,6370,6372],{},[618,6371,76],{"href":77}," - Add compile-time type safety to your wide events",[637,6374,6375,6377],{},[618,6376,56],{"href":57}," - Errors with actionable context",[637,6379,6380,6382],{},[618,6381,231],{"href":236}," - Auto-managed request logging per framework",[6384,6385,6386],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":689,"searchDepth":727,"depth":727,"links":6388},[6389,6390,6398,6401,6407,6414,6415],{"id":674,"depth":727,"text":675},{"id":1421,"depth":727,"text":1422,"children":6391},[6392,6394,6396],{"id":1426,"depth":771,"text":6393},"createLogger (General Purpose)",{"id":1771,"depth":771,"text":6395},"createRequestLogger (HTTP Contexts)",{"id":2019,"depth":771,"text":6397},"useLogger (Retrieving the Request Logger)",{"id":3001,"depth":727,"text":3002,"children":6399},[6400],{"id":3072,"depth":771,"text":3075},{"id":3312,"depth":727,"text":3313,"children":6402},[6403,6404,6405,6406],{"id":3329,"depth":771,"text":3330},{"id":3544,"depth":771,"text":3545},{"id":3640,"depth":771,"text":3641},{"id":3814,"depth":771,"text":3815},{"id":3997,"depth":727,"text":560,"children":6408},[6409,6410,6411,6412,6413],{"id":4000,"depth":771,"text":4001},{"id":4100,"depth":771,"text":4101},{"id":4263,"depth":771,"text":4264},{"id":4671,"depth":771,"text":4672},{"id":5925,"depth":771,"text":5926},{"id":6059,"depth":727,"text":6060},{"id":6359,"depth":727,"text":6360},"Accumulate context over any unit of work and emit a single comprehensive event. Works for HTTP requests, scripts, background jobs, queue workers, and workflows.","md",[6419,6421],{"label":56,"icon":59,"to":57,"color":614,"variant":6420},"subtle",{"label":560,"icon":388,"to":561,"color":614,"variant":6420},{},{"icon":54},{"title":51,"description":6416},"8GdhXZXsMEiyf-dBXtk42wBlb7DTPq9RT6w6AHI3m64",[6427,6429],{"title":46,"path":47,"stem":48,"description":6428,"icon":49,"children":-1},"Use evlog for individual structured messages, with the same drains and redaction as wide events, and adapt existing logger call sites.",{"title":56,"path":57,"stem":58,"description":6430,"icon":59,"children":-1},"Create errors that explain why they occurred and how to fix them. Add actionable context with why, fix, and link fields for humans and AI agents.",1791112777750]