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