[{"data":1,"prerenderedAt":4829},["ShallowReactive",2],{"navigation_docs":3,"-learn-wide-events":612,"-learn-wide-events-surround":4824},[4,35,85,138,318,453,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],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"path":455,"stem":456,"children":457,"page":34},"Libraries","\u002Flibraries","6.libraries",[458,462,467,470,474,479,484],{"title":41,"path":459,"stem":460,"icon":461},"\u002Flibraries\u002Foverview","6.libraries\u002F0.overview","i-lucide-package",{"title":463,"path":464,"stem":465,"icon":466},"Emitting Events","\u002Flibraries\u002Femitting","6.libraries\u002F1.emitting","i-lucide-radio",{"title":56,"path":468,"stem":469,"icon":59},"\u002Flibraries\u002Ferrors","6.libraries\u002F2.errors",{"title":471,"path":472,"stem":473,"icon":132},"Errors Agents Can Act On","\u002Flibraries\u002Fagents","6.libraries\u002F3.agents",{"title":475,"path":476,"stem":477,"icon":478},"Exporting the Catalog","\u002Flibraries\u002Fexporting","6.libraries\u002F4.exporting","i-lucide-file-output",{"title":480,"path":481,"stem":482,"icon":483},"Migrating","\u002Flibraries\u002Fmigrating","6.libraries\u002F5.migrating","i-lucide-route",{"title":485,"path":486,"stem":487,"icon":488},"Testing","\u002Flibraries\u002Ftesting","6.libraries\u002F6.testing","i-lucide-flask-conical",{"title":490,"path":491,"stem":492,"children":493,"page":34},"Extend","\u002Fextend","7.extend",[494,498,503,508,512,517,521,525,529,533,538,543],{"title":41,"path":495,"stem":496,"icon":497},"\u002Fextend\u002Foverview","7.extend\u002F0.overview","i-lucide-blocks",{"title":499,"path":500,"stem":501,"icon":502},"Stream","\u002Fextend\u002Fstream","7.extend\u002F1.stream","i-lucide-radio-tower",{"title":504,"path":505,"stem":506,"icon":507},"Custom framework","\u002Fextend\u002Fcustom-framework","7.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":509,"path":510,"stem":511,"icon":502},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","7.extend\u002F11.diagnostics-channel",{"title":513,"path":514,"stem":515,"icon":516},"FS reader","\u002Fextend\u002Ffs-reader","7.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":518,"stem":519,"icon":520},"\u002Fextend\u002Fconsumer-recipes","7.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":522,"path":523,"stem":524,"icon":497},"Plugins","\u002Fextend\u002Fplugins","7.extend\u002F4.plugins",{"title":526,"path":527,"stem":528,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","7.extend\u002F5.custom-enrichers",{"title":530,"path":531,"stem":532,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","7.extend\u002F6.tail-sampling",{"title":534,"path":535,"stem":536,"icon":537},"Identity headers","\u002Fextend\u002Fidentity-headers","7.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":539,"path":540,"stem":541,"icon":542},"Custom drains","\u002Fextend\u002Fcustom-drains","7.extend\u002F8.custom-drains","i-lucide-share-2",{"title":544,"path":545,"stem":546,"icon":547},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","7.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":549,"stem":550,"children":551,"page":34},"\u002Freference","8.reference",[552,556,561,564,569,573,578,582],{"title":41,"path":553,"stem":554,"icon":555},"\u002Freference\u002Foverview","8.reference\u002F0.overview","i-lucide-book-marked",{"title":557,"path":558,"stem":559,"icon":560},"Configuration","\u002Freference\u002Fconfiguration","8.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":562,"stem":563,"icon":112},"\u002Freference\u002Fperformance","8.reference\u002F2.performance",{"title":565,"path":566,"stem":567,"icon":568},"Vite Plugin","\u002Freference\u002Fvite-plugin","8.reference\u002F3.vite-plugin","i-custom-vite",{"title":570,"path":571,"stem":572,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","8.reference\u002F4.best-practices",{"title":574,"path":575,"stem":576,"icon":577},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","8.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":579,"path":580,"stem":581,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","8.reference\u002F6.agent-skills",{"title":583,"path":584,"stem":585,"icon":586},"Cost","\u002Freference\u002Fcost","8.reference\u002F7.cost","i-lucide-receipt",{"title":588,"path":589,"stem":590,"children":591,"page":34},"Compare","\u002Fcompare","9.compare",[592,596,600,604,608],{"title":593,"path":594,"stem":595,"icon":577},"evlog vs Pino","\u002Fcompare\u002Fpino","9.compare\u002F1.pino",{"title":597,"path":598,"stem":599,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","9.compare\u002F2.opentelemetry",{"title":601,"path":602,"stem":603,"icon":577},"evlog vs LogTape","\u002Fcompare\u002Flogtape","9.compare\u002F3.logtape",{"title":605,"path":606,"stem":607,"icon":577},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","9.compare\u002F4.winston",{"title":609,"path":610,"stem":611,"icon":577},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","9.compare\u002F5.consola",{"id":613,"title":51,"body":614,"description":4814,"extension":4815,"links":4816,"meta":4820,"navigation":4821,"path":52,"seo":4822,"stem":53,"__hash__":4823},"docs\u002F2.learn\u002F2.wide-events.md",{"type":615,"value":616,"toc":4785},"minimark",[617,621,635,681,686,689,692,894,897,924,927,1426,1429,1433,1441,1448,1779,1786,1806,2015,2027,2034,2041,2237,2245,2249,2297,2316,2322,2347,2372,2379,2395,2402,2560,2564,2577,2581,2584,2782,2792,2796,2799,2887,2891,2894,3061,3065,3068,3244,3247,3251,3347,3351,3510,3514,3521,3918,3922,3925,4320,4324,4348,4433,4454,4458,4461,4755,4759,4781],[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":301},"Standalone TypeScript"," and ",[628,633,295],{"href":296},", 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:",[693,2042,2044],{"className":695,"code":2043,"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  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,2045,2046,2064,2068,2099,2118,2122,2165,2203,2207,2225,2231],{"__ignoreMap":699},[704,2047,2048,2050,2052,2054,2056,2058,2060,2062],{"class":706,"line":707},[704,2049,941],{"class":940},[704,2051,758],{"class":714},[704,2053,946],{"class":710},[704,2055,816],{"class":714},[704,2057,951],{"class":940},[704,2059,808],{"class":714},[704,2061,956],{"class":728},[704,2063,959],{"class":714},[704,2065,2066],{"class":706,"line":737},[704,2067,965],{"emptyLinePlaceholder":964},[704,2069,2070,2073,2076,2079,2081,2084,2086,2090,2093,2096],{"class":706,"line":781},[704,2071,2072],{"class":940},"export",[704,2074,2075],{"class":940}," default",[704,2077,2078],{"class":718}," defineEventHandler",[704,2080,722],{"class":710},[704,2082,2083],{"class":970},"async",[704,2085,1640],{"class":714},[704,2087,2089],{"class":2088},"sHdIc","event",[704,2091,2092],{"class":714},")",[704,2094,2095],{"class":970}," =>",[704,2097,2098],{"class":714}," {\n",[704,2100,2101,2104,2107,2110,2112,2114,2116],{"class":706,"line":821},[704,2102,2103],{"class":970},"  const",[704,2105,2106],{"class":710}," log",[704,2108,2109],{"class":714}," =",[704,2111,946],{"class":718},[704,2113,722],{"class":761},[704,2115,2089],{"class":710},[704,2117,734],{"class":761},[704,2119,2120],{"class":706,"line":841},[704,2121,965],{"emptyLinePlaceholder":964},[704,2123,2124,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163],{"class":706,"line":861},[704,2125,2126],{"class":710},"  log",[704,2128,715],{"class":714},[704,2130,996],{"class":718},[704,2132,722],{"class":761},[704,2134,1001],{"class":714},[704,2136,768],{"class":761},[704,2138,765],{"class":714},[704,2140,758],{"class":714},[704,2142,1010],{"class":761},[704,2144,765],{"class":714},[704,2146,1015],{"class":888},[704,2148,755],{"class":714},[704,2150,1020],{"class":761},[704,2152,765],{"class":714},[704,2154,808],{"class":714},[704,2156,1027],{"class":728},[704,2158,725],{"class":714},[704,2160,816],{"class":714},[704,2162,816],{"class":714},[704,2164,734],{"class":761},[704,2166,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201],{"class":706,"line":1090},[704,2168,2126],{"class":710},[704,2170,715],{"class":714},[704,2172,996],{"class":718},[704,2174,722],{"class":761},[704,2176,1001],{"class":714},[704,2178,1050],{"class":761},[704,2180,765],{"class":714},[704,2182,758],{"class":714},[704,2184,1066],{"class":761},[704,2186,765],{"class":714},[704,2188,1071],{"class":888},[704,2190,755],{"class":714},[704,2192,1076],{"class":761},[704,2194,765],{"class":714},[704,2196,1081],{"class":888},[704,2198,816],{"class":714},[704,2200,816],{"class":714},[704,2202,734],{"class":761},[704,2204,2205],{"class":706,"line":1586},[704,2206,965],{"emptyLinePlaceholder":964},[704,2208,2209,2212,2214,2217,2219,2223],{"class":706,"line":1615},[704,2210,2211],{"class":940},"  return",[704,2213,758],{"class":714},[704,2215,2216],{"class":761}," success",[704,2218,765],{"class":714},[704,2220,2222],{"class":2221},"sfNiH"," true",[704,2224,1363],{"class":714},[704,2226,2227],{"class":706,"line":1620},[704,2228,2230],{"class":2229},"sHwdD","  \u002F\u002F auto-emitted on response end\n",[704,2232,2233,2235],{"class":706,"line":1634},[704,2234,776],{"class":714},[704,2236,734],{"class":710},[622,2238,2239,2241,2242,2244],{"color":719,"icon":13},[701,2240,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,2243,2032],{}," is auto-imported.",[682,2246,2248],{"id":2247},"after-emit-sealing-and-background-work","After emit: sealing and background work",[618,2250,2251,2252,2255,2256,2258,2259,2262,2263,1798,2265,1798,2268,1802,2270,2273,2274,2277,2278,2284,2285,2288,2289,2292,2293,2296],{},"When the wide event is ",[902,2253,2254],{},"emitted"," (automatically at the end of the request, or when you call ",[701,2257,2025],{}," yourself), that logger instance is ",[902,2260,2261],{},"sealed",". Further ",[701,2264,996],{},[701,2266,2267],{},"error",[701,2269,719],{},[701,2271,2272],{},"warn"," calls do ",[902,2275,2276],{},"not"," update the event that was already sent to your drains. They are ignored and evlog prints a ",[902,2279,2280,2283],{},[701,2281,2282],{},"[evlog]"," warning"," to the console with the keys that were dropped. This also applies when ",[902,2286,2287],{},"head sampling"," discards the event (",[701,2290,2291],{},"emit()"," returned ",[701,2294,2295],{},"null","): the logger is still sealed for that unit of work.",[618,2298,2299,2300,2303,2304,2307,2308,2311,2312,2315],{},"This matters for ",[902,2301,2302],{},"async work that outlives the handler"," (fire-and-forget promises, ",[701,2305,2306],{},"setTimeout",", tasks started but not awaited). On many runtimes, ",[701,2309,2310],{},"AsyncLocalStorage"," keeps returning the same request logger, so ",[701,2313,2314],{},"useLogger()"," still succeeds even though the HTTP response, and the wide event, are already finished. Without warnings, that looks like silent data loss.",[1434,2317,2319],{"id":2318},"logforklabel-fn",[701,2320,2321],{},"log.fork(label, fn)",[618,2323,2324,2325,2328,2329,2333,2334,2337,2338,1798,2341,2343,2344,2346],{},"For intentional background work that should produce ",[902,2326,2327],{},"its own"," wide event, use ",[902,2330,2331],{},[701,2332,2321],{}," when your integration provides it (Express, Fastify, NestJS, SvelteKit, React Router, Next.js ",[701,2335,2336],{},"withEvlog",", Elysia). Inside ",[701,2339,2340],{},"fn",[701,2342,2314],{}," resolves to the forked logger. When ",[701,2345,2340],{}," completes (or throws), that logger emits an event with:",[644,2348,2349,2361],{},[647,2350,2351,2356,2357,2360],{},[902,2352,2353],{},[701,2354,2355],{},"operation",": the ",[701,2358,2359],{},"label"," you passed",[647,2362,2363,2368,2369,2371],{},[902,2364,2365],{},[701,2366,2367],{},"_parentRequestId",": the parent request’s ",[701,2370,1805],{}," (for correlation in queries and dashboards)",[618,2373,2374,2375,2378],{},"The parent wide event may be emitted ",[902,2376,2377],{},"before"," the child event; they are two separate events ordered by time.",[618,2380,2381,2384,2385,2387,2388,2391,2392,2394],{},[902,2382,2383],{},"Not available yet:"," Hono (no ",[701,2386,2032],{}," without ",[701,2389,2390],{},"c.get('log')"," + ALS) and Nitro\u002FNuxt ",[701,2393,2039],{},", so use the post-emit warnings to catch mistakes; a different API may arrive later for event-scoped forks.",[618,2396,2397,2398,2401],{},"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,2399,2400],{},"createAILogger(log)"," metadata lands on the same request event automatically.",[693,2403,2406],{"className":695,"code":2404,"filename":2405,"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,2407,2408,2432,2436,2441,2457,2480,2484,2517,2530,2554],{"__ignoreMap":699},[704,2409,2410,2412,2414,2417,2419,2421,2423,2425,2427,2430],{"class":706,"line":707},[704,2411,941],{"class":940},[704,2413,758],{"class":714},[704,2415,2416],{"class":710}," evlog",[704,2418,755],{"class":714},[704,2420,946],{"class":710},[704,2422,816],{"class":714},[704,2424,951],{"class":940},[704,2426,808],{"class":714},[704,2428,2429],{"class":728},"evlog\u002Fexpress",[704,2431,959],{"class":714},[704,2433,2434],{"class":706,"line":737},[704,2435,965],{"emptyLinePlaceholder":964},[704,2437,2438],{"class":706,"line":781},[704,2439,2440],{"class":2229},"\u002F\u002F Inside a route after evlog middleware:\n",[704,2442,2443,2445,2447,2449,2452,2454],{"class":706,"line":821},[704,2444,971],{"class":970},[704,2446,974],{"class":710},[704,2448,977],{"class":714},[704,2450,2451],{"class":710}," req",[704,2453,715],{"class":714},[704,2455,2456],{"class":710},"log\n",[704,2458,2459,2461,2463,2465,2467,2469,2472,2474,2476,2478],{"class":706,"line":841},[704,2460,991],{"class":710},[704,2462,715],{"class":714},[704,2464,996],{"class":718},[704,2466,722],{"class":710},[704,2468,1001],{"class":714},[704,2470,2471],{"class":761}," order_dispatched",[704,2473,765],{"class":714},[704,2475,2222],{"class":2221},[704,2477,816],{"class":714},[704,2479,734],{"class":710},[704,2481,2482],{"class":706,"line":861},[704,2483,965],{"emptyLinePlaceholder":964},[704,2485,2486,2488,2490,2493,2496,2498,2500,2503,2505,2507,2510,2513,2515],{"class":706,"line":1090},[704,2487,991],{"class":710},[704,2489,715],{"class":714},[704,2491,2492],{"class":718},"fork",[704,2494,2495],{"class":714},"?.",[704,2497,722],{"class":710},[704,2499,725],{"class":714},[704,2501,2502],{"class":728},"process_order",[704,2504,725],{"class":714},[704,2506,755],{"class":714},[704,2508,2509],{"class":970}," async",[704,2511,2512],{"class":714}," ()",[704,2514,2095],{"class":970},[704,2516,2098],{"class":714},[704,2518,2519,2521,2524,2526,2528],{"class":706,"line":1586},[704,2520,2103],{"class":970},[704,2522,2523],{"class":710}," child",[704,2525,2109],{"class":714},[704,2527,946],{"class":718},[704,2529,1310],{"class":761},[704,2531,2532,2535,2537,2539,2541,2543,2546,2548,2550,2552],{"class":706,"line":1615},[704,2533,2534],{"class":710},"  child",[704,2536,715],{"class":714},[704,2538,996],{"class":718},[704,2540,722],{"class":761},[704,2542,1001],{"class":714},[704,2544,2545],{"class":761}," inventory_checked",[704,2547,765],{"class":714},[704,2549,2222],{"class":2221},[704,2551,816],{"class":714},[704,2553,734],{"class":761},[704,2555,2556,2558],{"class":706,"line":1620},[704,2557,776],{"class":714},[704,2559,734],{"class":710},[682,2561,2563],{"id":2562},"read-a-wide-event-field-by-field","Read a wide event field by field",[618,2565,2566,2567,2569,2570,1798,2572,2574,2575,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,2568,991],{}," is already created via ",[701,2571,1439],{},[701,2573,1784],{},", or ",[701,2576,2032],{},[1434,2578,2580],{"id":2579},"operation-context","Operation Context",[618,2582,2583],{},"Basic information about the operation:",[928,2585,2586,2690],{},[693,2587,2589],{"className":695,"code":2588,"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,2590,2591,2609,2613,2625,2637,2653,2668,2684],{"__ignoreMap":699},[704,2592,2593,2595,2597,2599,2601,2603,2605,2607],{"class":706,"line":707},[704,2594,941],{"class":940},[704,2596,758],{"class":714},[704,2598,946],{"class":710},[704,2600,816],{"class":714},[704,2602,951],{"class":940},[704,2604,808],{"class":714},[704,2606,956],{"class":728},[704,2608,959],{"class":714},[704,2610,2611],{"class":706,"line":737},[704,2612,965],{"emptyLinePlaceholder":964},[704,2614,2615,2617,2619,2621,2623],{"class":706,"line":781},[704,2616,971],{"class":970},[704,2618,974],{"class":710},[704,2620,977],{"class":714},[704,2622,946],{"class":718},[704,2624,982],{"class":710},[704,2626,2627,2629,2631,2633,2635],{"class":706,"line":821},[704,2628,991],{"class":710},[704,2630,715],{"class":714},[704,2632,996],{"class":718},[704,2634,722],{"class":710},[704,2636,1654],{"class":714},[704,2638,2639,2642,2644,2646,2648,2650],{"class":706,"line":841},[704,2640,2641],{"class":761},"  method",[704,2643,765],{"class":714},[704,2645,808],{"class":714},[704,2647,1896],{"class":728},[704,2649,725],{"class":714},[704,2651,2652],{"class":714},",\n",[704,2654,2655,2658,2660,2662,2664,2666],{"class":706,"line":861},[704,2656,2657],{"class":761},"  path",[704,2659,765],{"class":714},[704,2661,808],{"class":714},[704,2663,1910],{"class":728},[704,2665,725],{"class":714},[704,2667,2652],{"class":714},[704,2669,2670,2673,2675,2677,2680,2682],{"class":706,"line":1090},[704,2671,2672],{"class":761},"  requestId",[704,2674,765],{"class":714},[704,2676,808],{"class":714},[704,2678,2679],{"class":728},"abc-123-def",[704,2681,725],{"class":714},[704,2683,2652],{"class":714},[704,2685,2686,2688],{"class":706,"line":1586},[704,2687,776],{"class":714},[704,2689,734],{"class":710},[693,2691,2693],{"className":695,"code":2692,"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,2694,2695,2713,2717,2731,2746,2761,2776],{"__ignoreMap":699},[704,2696,2697,2699,2701,2703,2705,2707,2709,2711],{"class":706,"line":707},[704,2698,941],{"class":940},[704,2700,758],{"class":714},[704,2702,1154],{"class":710},[704,2704,816],{"class":714},[704,2706,951],{"class":940},[704,2708,808],{"class":714},[704,2710,956],{"class":728},[704,2712,959],{"class":714},[704,2714,2715],{"class":706,"line":737},[704,2716,965],{"emptyLinePlaceholder":964},[704,2718,2719,2721,2723,2725,2727,2729],{"class":706,"line":781},[704,2720,971],{"class":970},[704,2722,974],{"class":710},[704,2724,977],{"class":714},[704,2726,1154],{"class":718},[704,2728,722],{"class":710},[704,2730,1654],{"class":714},[704,2732,2733,2736,2738,2740,2742,2744],{"class":706,"line":821},[704,2734,2735],{"class":761},"  jobId",[704,2737,765],{"class":714},[704,2739,808],{"class":714},[704,2741,1192],{"class":728},[704,2743,725],{"class":714},[704,2745,2652],{"class":714},[704,2747,2748,2751,2753,2755,2757,2759],{"class":706,"line":841},[704,2749,2750],{"class":761},"  queue",[704,2752,765],{"class":714},[704,2754,808],{"class":714},[704,2756,1206],{"class":728},[704,2758,725],{"class":714},[704,2760,2652],{"class":714},[704,2762,2763,2766,2768,2770,2772,2774],{"class":706,"line":861},[704,2764,2765],{"class":761},"  source",[704,2767,765],{"class":714},[704,2769,808],{"class":714},[704,2771,811],{"class":728},[704,2773,725],{"class":714},[704,2775,2652],{"class":714},[704,2777,2778,2780],{"class":706,"line":1090},[704,2779,776],{"class":714},[704,2781,734],{"class":710},[622,2783,2784,2785,1798,2787,1798,2789,2791],{"color":719,"icon":13},"In framework integrations, request context (",[701,2786,1797],{},[701,2788,1801],{},[701,2790,1805],{},") is auto-populated by the middleware. You don't need to set these fields manually.",[1434,2793,2795],{"id":2794},"user-actor-context","User \u002F Actor Context",[618,2797,2798],{},"Who triggered the operation:",[693,2800,2802],{"className":695,"code":2801,"filename":933,"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",[701,2803,2804,2816,2831,2846,2861,2881],{"__ignoreMap":699},[704,2805,2806,2808,2810,2812,2814],{"class":706,"line":707},[704,2807,991],{"class":710},[704,2809,715],{"class":714},[704,2811,996],{"class":718},[704,2813,722],{"class":710},[704,2815,1654],{"class":714},[704,2817,2818,2821,2823,2825,2827,2829],{"class":706,"line":737},[704,2819,2820],{"class":761},"  userId",[704,2822,765],{"class":714},[704,2824,768],{"class":710},[704,2826,715],{"class":714},[704,2828,1683],{"class":710},[704,2830,2652],{"class":714},[704,2832,2833,2836,2838,2840,2842,2844],{"class":706,"line":781},[704,2834,2835],{"class":761},"  email",[704,2837,765],{"class":714},[704,2839,768],{"class":710},[704,2841,715],{"class":714},[704,2843,1697],{"class":710},[704,2845,2652],{"class":714},[704,2847,2848,2851,2853,2855,2857,2859],{"class":706,"line":821},[704,2849,2850],{"class":761},"  subscription",[704,2852,765],{"class":714},[704,2854,768],{"class":710},[704,2856,715],{"class":714},[704,2858,1710],{"class":710},[704,2860,2652],{"class":714},[704,2862,2863,2866,2868,2871,2874,2876,2879],{"class":706,"line":841},[704,2864,2865],{"class":761},"  accountAge",[704,2867,765],{"class":714},[704,2869,2870],{"class":718}," daysSince",[704,2872,2873],{"class":710},"(user",[704,2875,715],{"class":714},[704,2877,2878],{"class":710},"createdAt)",[704,2880,2652],{"class":714},[704,2882,2883,2885],{"class":706,"line":861},[704,2884,776],{"class":714},[704,2886,734],{"class":710},[1434,2888,2890],{"id":2889},"business-context","Business Context",[618,2892,2893],{},"Domain-specific data relevant to the operation:",[693,2895,2897],{"className":695,"code":2896,"filename":933,"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,2898,2899,2911,2920,2935,2956,2972,2988,2993,3002,3018,3035,3039,3055],{"__ignoreMap":699},[704,2900,2901,2903,2905,2907,2909],{"class":706,"line":707},[704,2902,991],{"class":710},[704,2904,715],{"class":714},[704,2906,996],{"class":718},[704,2908,722],{"class":710},[704,2910,1654],{"class":714},[704,2912,2913,2916,2918],{"class":706,"line":737},[704,2914,2915],{"class":761},"  cart",[704,2917,765],{"class":714},[704,2919,2098],{"class":714},[704,2921,2922,2925,2927,2929,2931,2933],{"class":706,"line":781},[704,2923,2924],{"class":761},"    id",[704,2926,765],{"class":714},[704,2928,1050],{"class":710},[704,2930,715],{"class":714},[704,2932,1683],{"class":710},[704,2934,2652],{"class":714},[704,2936,2937,2940,2942,2944,2946,2949,2951,2954],{"class":706,"line":821},[704,2938,2939],{"class":761},"    items",[704,2941,765],{"class":714},[704,2943,1050],{"class":710},[704,2945,715],{"class":714},[704,2947,2948],{"class":710},"items",[704,2950,715],{"class":714},[704,2952,2953],{"class":710},"length",[704,2955,2652],{"class":714},[704,2957,2958,2961,2963,2965,2967,2970],{"class":706,"line":841},[704,2959,2960],{"class":761},"    total",[704,2962,765],{"class":714},[704,2964,1050],{"class":710},[704,2966,715],{"class":714},[704,2968,2969],{"class":710},"total",[704,2971,2652],{"class":714},[704,2973,2974,2977,2979,2981,2984,2986],{"class":706,"line":861},[704,2975,2976],{"class":761},"    currency",[704,2978,765],{"class":714},[704,2980,808],{"class":714},[704,2982,2983],{"class":728},"USD",[704,2985,725],{"class":714},[704,2987,2652],{"class":714},[704,2989,2990],{"class":706,"line":1090},[704,2991,2992],{"class":714},"  },\n",[704,2994,2995,2998,3000],{"class":706,"line":1586},[704,2996,2997],{"class":761},"  shipping",[704,2999,765],{"class":714},[704,3001,2098],{"class":714},[704,3003,3004,3007,3009,3011,3014,3016],{"class":706,"line":1615},[704,3005,3006],{"class":761},"    method",[704,3008,765],{"class":714},[704,3010,808],{"class":714},[704,3012,3013],{"class":728},"express",[704,3015,725],{"class":714},[704,3017,2652],{"class":714},[704,3019,3020,3023,3025,3028,3030,3033],{"class":706,"line":1620},[704,3021,3022],{"class":761},"    country",[704,3024,765],{"class":714},[704,3026,3027],{"class":710}," address",[704,3029,715],{"class":714},[704,3031,3032],{"class":710},"country",[704,3034,2652],{"class":714},[704,3036,3037],{"class":706,"line":1634},[704,3038,2992],{"class":714},[704,3040,3041,3044,3046,3049,3051,3053],{"class":706,"line":1657},[704,3042,3043],{"class":761},"  coupon",[704,3045,765],{"class":714},[704,3047,3048],{"class":710}," appliedCoupon",[704,3050,2495],{"class":714},[704,3052,701],{"class":710},[704,3054,2652],{"class":714},[704,3056,3057,3059],{"class":706,"line":1717},[704,3058,776],{"class":714},[704,3060,734],{"class":710},[1434,3062,3064],{"id":3063},"outcome","Outcome",[618,3066,3067],{},"The result of the operation:",[928,3069,3070,3143],{},[693,3071,3074],{"className":695,"code":3072,"filename":3073,"language":698,"meta":699,"style":699},"log.set({\n  status: 200,\n  duration: Date.now() - startTime,\n  success: true,\n})\n","Success",[701,3075,3076,3088,3100,3126,3137],{"__ignoreMap":699},[704,3077,3078,3080,3082,3084,3086],{"class":706,"line":707},[704,3079,991],{"class":710},[704,3081,715],{"class":714},[704,3083,996],{"class":718},[704,3085,722],{"class":710},[704,3087,1654],{"class":714},[704,3089,3090,3093,3095,3098],{"class":706,"line":737},[704,3091,3092],{"class":761},"  status",[704,3094,765],{"class":714},[704,3096,3097],{"class":888}," 200",[704,3099,2652],{"class":714},[704,3101,3102,3105,3107,3110,3112,3115,3118,3121,3124],{"class":706,"line":781},[704,3103,3104],{"class":761},"  duration",[704,3106,765],{"class":714},[704,3108,3109],{"class":710}," Date",[704,3111,715],{"class":714},[704,3113,3114],{"class":718},"now",[704,3116,3117],{"class":710},"() ",[704,3119,3120],{"class":714},"-",[704,3122,3123],{"class":710}," startTime",[704,3125,2652],{"class":714},[704,3127,3128,3131,3133,3135],{"class":706,"line":821},[704,3129,3130],{"class":761},"  success",[704,3132,765],{"class":714},[704,3134,2222],{"class":2221},[704,3136,2652],{"class":714},[704,3138,3139,3141],{"class":706,"line":841},[704,3140,776],{"class":714},[704,3142,734],{"class":710},[693,3144,3147],{"className":695,"code":3145,"filename":3146,"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,3148,3149,3161,3172,3181,3198,3213,3234,3238],{"__ignoreMap":699},[704,3150,3151,3153,3155,3157,3159],{"class":706,"line":707},[704,3152,991],{"class":710},[704,3154,715],{"class":714},[704,3156,996],{"class":718},[704,3158,722],{"class":710},[704,3160,1654],{"class":714},[704,3162,3163,3165,3167,3170],{"class":706,"line":737},[704,3164,3092],{"class":761},[704,3166,765],{"class":714},[704,3168,3169],{"class":888}," 500",[704,3171,2652],{"class":714},[704,3173,3174,3177,3179],{"class":706,"line":781},[704,3175,3176],{"class":761},"  error",[704,3178,765],{"class":714},[704,3180,2098],{"class":714},[704,3182,3183,3186,3188,3191,3193,3196],{"class":706,"line":821},[704,3184,3185],{"class":761},"    message",[704,3187,765],{"class":714},[704,3189,3190],{"class":710}," err",[704,3192,715],{"class":714},[704,3194,3195],{"class":710},"message",[704,3197,2652],{"class":714},[704,3199,3200,3203,3205,3207,3209,3211],{"class":706,"line":841},[704,3201,3202],{"class":761},"    code",[704,3204,765],{"class":714},[704,3206,3190],{"class":710},[704,3208,715],{"class":714},[704,3210,701],{"class":710},[704,3212,2652],{"class":714},[704,3214,3215,3218,3220,3222,3224,3227,3229,3232],{"class":706,"line":861},[704,3216,3217],{"class":761},"    type",[704,3219,765],{"class":714},[704,3221,3190],{"class":710},[704,3223,715],{"class":714},[704,3225,3226],{"class":710},"constructor",[704,3228,715],{"class":714},[704,3230,3231],{"class":710},"name",[704,3233,2652],{"class":714},[704,3235,3236],{"class":706,"line":1090},[704,3237,2992],{"class":714},[704,3239,3240,3242],{"class":706,"line":1586},[704,3241,776],{"class":714},[704,3243,734],{"class":710},[682,3245,570],{"id":3246},"best-practices",[1434,3248,3250],{"id":3249},"use-meaningful-keys","Use Meaningful Keys",[693,3252,3255],{"className":695,"code":3253,"filename":3254,"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","server\u002Fapi\u002Forders.post.ts",[701,3256,3257,3262,3294,3298,3303],{"__ignoreMap":699},[704,3258,3259],{"class":706,"line":707},[704,3260,3261],{"class":2229},"\u002F\u002F Avoid generic keys\n",[704,3263,3264,3266,3268,3270,3272,3274,3277,3279,3281,3283,3285,3288,3290,3292],{"class":706,"line":737},[704,3265,991],{"class":710},[704,3267,715],{"class":714},[704,3269,996],{"class":718},[704,3271,722],{"class":710},[704,3273,1001],{"class":714},[704,3275,3276],{"class":761}," data",[704,3278,765],{"class":714},[704,3280,758],{"class":714},[704,3282,1010],{"class":761},[704,3284,765],{"class":714},[704,3286,3287],{"class":888}," 123",[704,3289,816],{"class":714},[704,3291,816],{"class":714},[704,3293,734],{"class":710},[704,3295,3296],{"class":706,"line":781},[704,3297,965],{"emptyLinePlaceholder":964},[704,3299,3300],{"class":706,"line":821},[704,3301,3302],{"class":2229},"\u002F\u002F Use specific, descriptive keys\n",[704,3304,3305,3307,3309,3311,3313,3315,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3339,3341,3343,3345],{"class":706,"line":841},[704,3306,991],{"class":710},[704,3308,715],{"class":714},[704,3310,996],{"class":718},[704,3312,722],{"class":710},[704,3314,1001],{"class":714},[704,3316,3317],{"class":761}," order",[704,3319,765],{"class":714},[704,3321,758],{"class":714},[704,3323,1010],{"class":761},[704,3325,765],{"class":714},[704,3327,3287],{"class":888},[704,3329,755],{"class":714},[704,3331,1124],{"class":761},[704,3333,765],{"class":714},[704,3335,808],{"class":714},[704,3337,3338],{"class":728},"pending",[704,3340,725],{"class":714},[704,3342,816],{"class":714},[704,3344,816],{"class":714},[704,3346,734],{"class":710},[1434,3348,3350],{"id":3349},"group-related-data","Group Related Data",[693,3352,3354],{"className":695,"code":3353,"filename":933,"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,3355,3356,3361,3373,3383,3399,3411,3423,3429,3433,3438,3450,3480,3504],{"__ignoreMap":699},[704,3357,3358],{"class":706,"line":707},[704,3359,3360],{"class":2229},"\u002F\u002F Flat structure is hard to read\n",[704,3362,3363,3365,3367,3369,3371],{"class":706,"line":737},[704,3364,991],{"class":710},[704,3366,715],{"class":714},[704,3368,996],{"class":718},[704,3370,722],{"class":710},[704,3372,1654],{"class":714},[704,3374,3375,3377,3379,3381],{"class":706,"line":781},[704,3376,2820],{"class":761},[704,3378,765],{"class":714},[704,3380,1015],{"class":888},[704,3382,2652],{"class":714},[704,3384,3385,3388,3390,3392,3395,3397],{"class":706,"line":821},[704,3386,3387],{"class":761},"  userEmail",[704,3389,765],{"class":714},[704,3391,808],{"class":714},[704,3393,3394],{"class":728},"a@b.com",[704,3396,725],{"class":714},[704,3398,2652],{"class":714},[704,3400,3401,3404,3406,3409],{"class":706,"line":841},[704,3402,3403],{"class":761},"  cartId",[704,3405,765],{"class":714},[704,3407,3408],{"class":888}," 2",[704,3410,2652],{"class":714},[704,3412,3413,3416,3418,3421],{"class":706,"line":861},[704,3414,3415],{"class":761},"  cartTotal",[704,3417,765],{"class":714},[704,3419,3420],{"class":888}," 100",[704,3422,2652],{"class":714},[704,3424,3425,3427],{"class":706,"line":1090},[704,3426,776],{"class":714},[704,3428,734],{"class":710},[704,3430,3431],{"class":706,"line":1586},[704,3432,965],{"emptyLinePlaceholder":964},[704,3434,3435],{"class":706,"line":1615},[704,3436,3437],{"class":2229},"\u002F\u002F Grouped structure is clearer\n",[704,3439,3440,3442,3444,3446,3448],{"class":706,"line":1620},[704,3441,991],{"class":710},[704,3443,715],{"class":714},[704,3445,996],{"class":718},[704,3447,722],{"class":710},[704,3449,1654],{"class":714},[704,3451,3452,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477],{"class":706,"line":1634},[704,3453,3454],{"class":761},"  user",[704,3456,765],{"class":714},[704,3458,758],{"class":714},[704,3460,1010],{"class":761},[704,3462,765],{"class":714},[704,3464,1015],{"class":888},[704,3466,755],{"class":714},[704,3468,1688],{"class":761},[704,3470,765],{"class":714},[704,3472,808],{"class":714},[704,3474,3394],{"class":728},[704,3476,725],{"class":714},[704,3478,3479],{"class":714}," },\n",[704,3481,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502],{"class":706,"line":1657},[704,3483,2915],{"class":761},[704,3485,765],{"class":714},[704,3487,758],{"class":714},[704,3489,1010],{"class":761},[704,3491,765],{"class":714},[704,3493,3408],{"class":888},[704,3495,755],{"class":714},[704,3497,1076],{"class":761},[704,3499,765],{"class":714},[704,3501,3420],{"class":888},[704,3503,3479],{"class":714},[704,3505,3506,3508],{"class":706,"line":1717},[704,3507,776],{"class":714},[704,3509,734],{"class":710},[1434,3511,3513],{"id":3512},"add-context-incrementally","Add Context Incrementally",[618,3515,3516,3517,3520],{},"Call ",[701,3518,3519],{},"log.set()"," as you gather information:",[928,3522,3523,3830],{},[693,3524,3526],{"className":695,"code":3525,"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,3527,3528,3546,3550,3572,3588,3592,3611,3657,3661,3685,3735,3739,3759,3806,3810,3824],{"__ignoreMap":699},[704,3529,3530,3532,3534,3536,3538,3540,3542,3544],{"class":706,"line":707},[704,3531,941],{"class":940},[704,3533,758],{"class":714},[704,3535,946],{"class":710},[704,3537,816],{"class":714},[704,3539,951],{"class":940},[704,3541,808],{"class":714},[704,3543,956],{"class":728},[704,3545,959],{"class":714},[704,3547,3548],{"class":706,"line":737},[704,3549,965],{"emptyLinePlaceholder":964},[704,3551,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570],{"class":706,"line":781},[704,3553,2072],{"class":940},[704,3555,2075],{"class":940},[704,3557,2078],{"class":718},[704,3559,722],{"class":710},[704,3561,2083],{"class":970},[704,3563,1640],{"class":714},[704,3565,2089],{"class":2088},[704,3567,2092],{"class":714},[704,3569,2095],{"class":970},[704,3571,2098],{"class":714},[704,3573,3574,3576,3578,3580,3582,3584,3586],{"class":706,"line":821},[704,3575,2103],{"class":970},[704,3577,2106],{"class":710},[704,3579,2109],{"class":714},[704,3581,946],{"class":718},[704,3583,722],{"class":761},[704,3585,2089],{"class":710},[704,3587,734],{"class":761},[704,3589,3590],{"class":706,"line":841},[704,3591,965],{"emptyLinePlaceholder":964},[704,3593,3594,3596,3598,3600,3602,3605,3607,3609],{"class":706,"line":861},[704,3595,2103],{"class":970},[704,3597,768],{"class":710},[704,3599,2109],{"class":714},[704,3601,1564],{"class":940},[704,3603,3604],{"class":718}," getUser",[704,3606,722],{"class":761},[704,3608,2089],{"class":710},[704,3610,734],{"class":761},[704,3612,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655],{"class":706,"line":1090},[704,3614,2126],{"class":710},[704,3616,715],{"class":714},[704,3618,996],{"class":718},[704,3620,722],{"class":761},[704,3622,1001],{"class":714},[704,3624,768],{"class":761},[704,3626,765],{"class":714},[704,3628,758],{"class":714},[704,3630,1010],{"class":761},[704,3632,765],{"class":714},[704,3634,768],{"class":710},[704,3636,715],{"class":714},[704,3638,1683],{"class":710},[704,3640,755],{"class":714},[704,3642,1020],{"class":761},[704,3644,765],{"class":714},[704,3646,768],{"class":710},[704,3648,715],{"class":714},[704,3650,1710],{"class":710},[704,3652,816],{"class":714},[704,3654,816],{"class":714},[704,3656,734],{"class":761},[704,3658,3659],{"class":706,"line":1586},[704,3660,965],{"emptyLinePlaceholder":964},[704,3662,3663,3665,3667,3669,3671,3674,3676,3679,3681,3683],{"class":706,"line":1615},[704,3664,2103],{"class":970},[704,3666,1050],{"class":710},[704,3668,2109],{"class":714},[704,3670,1564],{"class":940},[704,3672,3673],{"class":718}," getCart",[704,3675,722],{"class":761},[704,3677,3678],{"class":710},"user",[704,3680,715],{"class":714},[704,3682,1683],{"class":710},[704,3684,734],{"class":761},[704,3686,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733],{"class":706,"line":1620},[704,3688,2126],{"class":710},[704,3690,715],{"class":714},[704,3692,996],{"class":718},[704,3694,722],{"class":761},[704,3696,1001],{"class":714},[704,3698,1050],{"class":761},[704,3700,765],{"class":714},[704,3702,758],{"class":714},[704,3704,1066],{"class":761},[704,3706,765],{"class":714},[704,3708,1050],{"class":710},[704,3710,715],{"class":714},[704,3712,2948],{"class":710},[704,3714,715],{"class":714},[704,3716,2953],{"class":710},[704,3718,755],{"class":714},[704,3720,1076],{"class":761},[704,3722,765],{"class":714},[704,3724,1050],{"class":710},[704,3726,715],{"class":714},[704,3728,2969],{"class":710},[704,3730,816],{"class":714},[704,3732,816],{"class":714},[704,3734,734],{"class":761},[704,3736,3737],{"class":706,"line":1634},[704,3738,965],{"emptyLinePlaceholder":964},[704,3740,3741,3743,3745,3747,3749,3752,3754,3757],{"class":706,"line":1657},[704,3742,2103],{"class":970},[704,3744,1103],{"class":710},[704,3746,2109],{"class":714},[704,3748,1564],{"class":940},[704,3750,3751],{"class":718}," processPayment",[704,3753,722],{"class":761},[704,3755,3756],{"class":710},"cart",[704,3758,734],{"class":761},[704,3760,3761,3763,3765,3767,3769,3771,3773,3775,3777,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3800,3802,3804],{"class":706,"line":1717},[704,3762,2126],{"class":710},[704,3764,715],{"class":714},[704,3766,996],{"class":718},[704,3768,722],{"class":761},[704,3770,1001],{"class":714},[704,3772,1103],{"class":761},[704,3774,765],{"class":714},[704,3776,758],{"class":714},[704,3778,1110],{"class":761},[704,3780,765],{"class":714},[704,3782,1103],{"class":710},[704,3784,715],{"class":714},[704,3786,1797],{"class":710},[704,3788,755],{"class":714},[704,3790,1124],{"class":761},[704,3792,765],{"class":714},[704,3794,1103],{"class":710},[704,3796,715],{"class":714},[704,3798,3799],{"class":710},"status",[704,3801,816],{"class":714},[704,3803,816],{"class":714},[704,3805,734],{"class":761},[704,3807,3808],{"class":706,"line":1726},[704,3809,965],{"emptyLinePlaceholder":964},[704,3811,3812,3814,3816,3818,3820,3822],{"class":706,"line":1732},[704,3813,2211],{"class":940},[704,3815,758],{"class":714},[704,3817,2216],{"class":761},[704,3819,765],{"class":714},[704,3821,2222],{"class":2221},[704,3823,1363],{"class":714},[704,3825,3826,3828],{"class":706,"line":1737},[704,3827,776],{"class":714},[704,3829,734],{"class":710},[693,3831,3833],{"className":1313,"code":3832,"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,3834,3835,3850,3870,3886,3912],{"__ignoreMap":699},[704,3836,3837,3839,3841,3843,3845,3848],{"class":706,"line":707},[704,3838,1323],{"class":714},[704,3840,1326],{"class":710},[704,3842,1329],{"class":714},[704,3844,1332],{"class":710},[704,3846,3847],{"class":1335},"456ms",[704,3849,734],{"class":710},[704,3851,3852,3854,3856,3858,3860,3862,3864,3866,3868],{"class":706,"line":737},[704,3853,1343],{"class":1335},[704,3855,758],{"class":728},[704,3857,1348],{"class":728},[704,3859,1351],{"class":728},[704,3861,1354],{"class":728},[704,3863,808],{"class":714},[704,3865,1027],{"class":728},[704,3867,725],{"class":714},[704,3869,1363],{"class":728},[704,3871,3872,3874,3876,3878,3880,3882,3884],{"class":706,"line":781},[704,3873,1368],{"class":1335},[704,3875,758],{"class":728},[704,3877,1378],{"class":728},[704,3879,1381],{"class":728},[704,3881,1384],{"class":728},[704,3883,1081],{"class":888},[704,3885,1363],{"class":728},[704,3887,3888,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910],{"class":706,"line":821},[704,3889,1393],{"class":1335},[704,3891,758],{"class":728},[704,3893,1398],{"class":728},[704,3895,808],{"class":714},[704,3897,1117],{"class":728},[704,3899,725],{"class":714},[704,3901,755],{"class":728},[704,3903,1409],{"class":728},[704,3905,808],{"class":714},[704,3907,1131],{"class":728},[704,3909,725],{"class":714},[704,3911,1363],{"class":728},[704,3913,3914,3916],{"class":706,"line":841},[704,3915,1422],{"class":1335},[704,3917,1425],{"class":888},[1434,3919,3921],{"id":3920},"handle-errors-gracefully","Handle Errors Gracefully",[618,3923,3924],{},"When errors occur, the wide event still emits with error context:",[928,3926,3927,4153],{},[693,3928,3930],{"className":695,"code":3929,"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  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,3931,3932,3950,3954,3976,3992,3996,4003,4023,4031,4049,4062,4071,4086,4101,4120,4125,4132,4140,4146],{"__ignoreMap":699},[704,3933,3934,3936,3938,3940,3942,3944,3946,3948],{"class":706,"line":707},[704,3935,941],{"class":940},[704,3937,758],{"class":714},[704,3939,946],{"class":710},[704,3941,816],{"class":714},[704,3943,951],{"class":940},[704,3945,808],{"class":714},[704,3947,956],{"class":728},[704,3949,959],{"class":714},[704,3951,3952],{"class":706,"line":737},[704,3953,965],{"emptyLinePlaceholder":964},[704,3955,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974],{"class":706,"line":781},[704,3957,2072],{"class":940},[704,3959,2075],{"class":940},[704,3961,2078],{"class":718},[704,3963,722],{"class":710},[704,3965,2083],{"class":970},[704,3967,1640],{"class":714},[704,3969,2089],{"class":2088},[704,3971,2092],{"class":714},[704,3973,2095],{"class":970},[704,3975,2098],{"class":714},[704,3977,3978,3980,3982,3984,3986,3988,3990],{"class":706,"line":821},[704,3979,2103],{"class":970},[704,3981,2106],{"class":710},[704,3983,2109],{"class":714},[704,3985,946],{"class":718},[704,3987,722],{"class":761},[704,3989,2089],{"class":710},[704,3991,734],{"class":761},[704,3993,3994],{"class":706,"line":841},[704,3995,965],{"emptyLinePlaceholder":964},[704,3997,3998,4001],{"class":706,"line":861},[704,3999,4000],{"class":940},"  try",[704,4002,2098],{"class":714},[704,4004,4005,4008,4011,4013,4015,4017,4019,4021],{"class":706,"line":1090},[704,4006,4007],{"class":970},"    const",[704,4009,4010],{"class":710}," result",[704,4012,2109],{"class":714},[704,4014,1564],{"class":940},[704,4016,3751],{"class":718},[704,4018,722],{"class":761},[704,4020,3756],{"class":710},[704,4022,734],{"class":761},[704,4024,4025,4028],{"class":706,"line":1586},[704,4026,4027],{"class":940},"    return",[704,4029,4030],{"class":710}," result\n",[704,4032,4033,4036,4039,4041,4044,4047],{"class":706,"line":1615},[704,4034,4035],{"class":714},"  }",[704,4037,4038],{"class":940}," catch",[704,4040,1640],{"class":761},[704,4042,4043],{"class":710},"err",[704,4045,4046],{"class":761},") ",[704,4048,1654],{"class":714},[704,4050,4051,4054,4056,4058,4060],{"class":706,"line":1620},[704,4052,4053],{"class":710},"    log",[704,4055,715],{"class":714},[704,4057,996],{"class":718},[704,4059,722],{"class":761},[704,4061,1654],{"class":714},[704,4063,4064,4067,4069],{"class":706,"line":1634},[704,4065,4066],{"class":761},"      error",[704,4068,765],{"class":714},[704,4070,2098],{"class":714},[704,4072,4073,4076,4078,4080,4082,4084],{"class":706,"line":1657},[704,4074,4075],{"class":761},"        message",[704,4077,765],{"class":714},[704,4079,3190],{"class":710},[704,4081,715],{"class":714},[704,4083,3195],{"class":710},[704,4085,2652],{"class":714},[704,4087,4088,4091,4093,4095,4097,4099],{"class":706,"line":1717},[704,4089,4090],{"class":761},"        code",[704,4092,765],{"class":714},[704,4094,3190],{"class":710},[704,4096,715],{"class":714},[704,4098,701],{"class":710},[704,4100,2652],{"class":714},[704,4102,4103,4106,4108,4110,4112,4114,4116,4118],{"class":706,"line":1726},[704,4104,4105],{"class":761},"        type",[704,4107,765],{"class":714},[704,4109,3190],{"class":710},[704,4111,715],{"class":714},[704,4113,3226],{"class":710},[704,4115,715],{"class":714},[704,4117,3231],{"class":710},[704,4119,2652],{"class":714},[704,4121,4122],{"class":706,"line":1732},[704,4123,4124],{"class":714},"      },\n",[704,4126,4127,4130],{"class":706,"line":1737},[704,4128,4129],{"class":714},"    }",[704,4131,734],{"class":761},[704,4133,4134,4137],{"class":706,"line":1770},[704,4135,4136],{"class":940},"    throw",[704,4138,4139],{"class":710}," err\n",[704,4141,4143],{"class":706,"line":4142},18,[704,4144,4145],{"class":714},"  }\n",[704,4147,4149,4151],{"class":706,"line":4148},19,[704,4150,776],{"class":714},[704,4152,734],{"class":710},[693,4154,4156],{"className":1313,"code":4155,"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,4157,4158,4166,4180,4191,4214,4233,4260,4284,4300],{"__ignoreMap":699},[704,4159,4160,4163],{"class":706,"line":707},[704,4161,4162],{"class":1335},"ERROR",[704,4164,4165],{"class":710}," [checkout] POST \u002Fapi\u002Fcheckout 402 in 123ms\n",[704,4167,4168,4171,4174,4177],{"class":706,"line":737},[704,4169,4170],{"class":1335},"  ├─",[704,4172,4173],{"class":728}," error:",[704,4175,4176],{"class":728}," Card",[704,4178,4179],{"class":728}," declined\n",[704,4181,4182,4185,4188],{"class":706,"line":781},[704,4183,4184],{"class":1335},"  │",[704,4186,4187],{"class":728},"     at",[704,4189,4190],{"class":728}," server\u002Fapi\u002Fcheckout.post.ts:42\n",[704,4192,4193,4195,4198,4200,4203,4206,4209,4211],{"class":706,"line":821},[704,4194,4184],{"class":1335},[704,4196,4197],{"class":728},"   ❯",[704,4199,1061],{"class":888},[704,4201,4202],{"class":728}," ┃",[704,4204,4205],{"class":728}," throw",[704,4207,4208],{"class":728}," createError",[704,4210,722],{"class":714},[704,4212,4213],{"class":710},"{ code: 'CARD_DECLINED', ... })\n",[704,4215,4216,4218,4221,4224,4227,4230],{"class":706,"line":841},[704,4217,4184],{"class":1335},[704,4219,4220],{"class":728},"     Why:",[704,4222,4223],{"class":728}," Issuer",[704,4225,4226],{"class":728}," declined",[704,4228,4229],{"class":728}," the",[704,4231,4232],{"class":728}," charge\n",[704,4234,4235,4237,4240,4243,4245,4248,4251,4254,4257],{"class":706,"line":861},[704,4236,4184],{"class":1335},[704,4238,4239],{"class":728},"     Fix:",[704,4241,4242],{"class":728}," Ask",[704,4244,4229],{"class":728},[704,4246,4247],{"class":728}," customer",[704,4249,4250],{"class":728}," to",[704,4252,4253],{"class":728}," use",[704,4255,4256],{"class":728}," another",[704,4258,4259],{"class":728}," card\n",[704,4261,4262,4264,4267,4270,4273,4276,4279,4282],{"class":706,"line":1090},[704,4263,4184],{"class":1335},[704,4265,4266],{"class":728},"     stack",[704,4268,4269],{"class":710}," (3 ",[704,4271,4272],{"class":728},"frames",[704,4274,4275],{"class":728}," hidden",[704,4277,4278],{"class":728}," in",[704,4280,4281],{"class":728}," node_modules",[704,4283,734],{"class":714},[704,4285,4286,4288,4291,4294,4297],{"class":706,"line":1586},[704,4287,4170],{"class":1335},[704,4289,4290],{"class":728}," user:",[704,4292,4293],{"class":728}," id=",[704,4295,4296],{"class":888},"1",[704,4298,4299],{"class":728}," plan=pro\n",[704,4301,4302,4305,4308,4311,4314,4317],{"class":706,"line":1615},[704,4303,4304],{"class":1335},"  └─",[704,4306,4307],{"class":728}," cart:",[704,4309,4310],{"class":728}," items=",[704,4312,4313],{"class":888},"3",[704,4315,4316],{"class":728}," total=",[704,4318,4319],{"class":888},"9999\n",[1434,4321,4323],{"id":4322},"setting-the-level-manually","Setting the Level Manually",[618,4325,4326,4329,4330,4332,4333,4336,4337,4340,4341,4343,4344,4347],{},[701,4327,4328],{},"log.error(err)"," populates the ",[701,4331,2267],{}," field with ",[701,4334,4335],{},"{ name, message, stack }"," and promotes the wide event to ",[701,4338,4339],{},"level: 'error'",". When you want to control the ",[701,4342,2267],{}," field yourself (typed error codes, no stack, or richer custom shapes), use ",[701,4345,4346],{},"log.setLevel()"," to promote the level without touching the context:",[693,4349,4351],{"className":695,"code":4350,"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,4352,4353,4372,4384,4392,4407,4423,4427],{"__ignoreMap":699},[704,4354,4355,4357,4359,4362,4364,4366,4368,4370],{"class":706,"line":707},[704,4356,991],{"class":710},[704,4358,715],{"class":714},[704,4360,4361],{"class":718},"setLevel",[704,4363,722],{"class":710},[704,4365,725],{"class":714},[704,4367,2267],{"class":728},[704,4369,725],{"class":714},[704,4371,734],{"class":710},[704,4373,4374,4376,4378,4380,4382],{"class":706,"line":737},[704,4375,991],{"class":710},[704,4377,715],{"class":714},[704,4379,996],{"class":718},[704,4381,722],{"class":710},[704,4383,1654],{"class":714},[704,4385,4386,4388,4390],{"class":706,"line":781},[704,4387,3176],{"class":761},[704,4389,765],{"class":714},[704,4391,2098],{"class":714},[704,4393,4394,4396,4398,4400,4403,4405],{"class":706,"line":821},[704,4395,3202],{"class":761},[704,4397,765],{"class":714},[704,4399,808],{"class":714},[704,4401,4402],{"class":728},"PAYMENT_DECLINED",[704,4404,725],{"class":714},[704,4406,2652],{"class":714},[704,4408,4409,4412,4414,4416,4419,4421],{"class":706,"line":841},[704,4410,4411],{"class":761},"    reason",[704,4413,765],{"class":714},[704,4415,808],{"class":714},[704,4417,4418],{"class":728},"insufficient_funds",[704,4420,725],{"class":714},[704,4422,2652],{"class":714},[704,4424,4425],{"class":706,"line":861},[704,4426,2992],{"class":714},[704,4428,4429,4431],{"class":706,"line":1090},[704,4430,776],{"class":714},[704,4432,734],{"class":710},[618,4434,4435,4438,4439,4442,4443,4446,4447,4450,4451,4453],{},[701,4436,4437],{},"setLevel()"," accepts ",[701,4440,4441],{},"'error' | 'warn' | 'info' | 'debug'"," and wins over the level computed from ",[701,4444,4445],{},".error()"," \u002F ",[701,4448,4449],{},".warn()",". Combine it with ",[701,4452,3519],{}," to keep the wide event tidy while still routing through error-level sampling and drains.",[682,4455,4457],{"id":4456},"choose-how-the-event-is-rendered","Choose how the event is rendered",[618,4459,4460],{},"evlog automatically switches between formats based on environment: pretty in development, JSON in production. This is the default behavior, no configuration needed.",[928,4462,4463,4545],{},[693,4464,4467],{"className":1313,"code":4465,"filename":4466,"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,4468,4469,4483,4503,4519],{"__ignoreMap":699},[704,4470,4471,4473,4475,4477,4479,4481],{"class":706,"line":707},[704,4472,1323],{"class":714},[704,4474,1326],{"class":710},[704,4476,1329],{"class":714},[704,4478,1332],{"class":710},[704,4480,1336],{"class":1335},[704,4482,734],{"class":710},[704,4484,4485,4487,4489,4491,4493,4495,4497,4499,4501],{"class":706,"line":737},[704,4486,1343],{"class":1335},[704,4488,758],{"class":728},[704,4490,1348],{"class":728},[704,4492,1351],{"class":728},[704,4494,1354],{"class":728},[704,4496,808],{"class":714},[704,4498,1027],{"class":728},[704,4500,725],{"class":714},[704,4502,1363],{"class":728},[704,4504,4505,4507,4509,4511,4513,4515,4517],{"class":706,"line":781},[704,4506,1368],{"class":1335},[704,4508,758],{"class":728},[704,4510,1378],{"class":728},[704,4512,1381],{"class":728},[704,4514,1384],{"class":728},[704,4516,1081],{"class":888},[704,4518,1363],{"class":728},[704,4520,4521,4523,4525,4527,4529,4531,4533,4535,4537,4539,4541,4543],{"class":706,"line":821},[704,4522,1393],{"class":1335},[704,4524,758],{"class":728},[704,4526,1398],{"class":728},[704,4528,808],{"class":714},[704,4530,1117],{"class":728},[704,4532,725],{"class":714},[704,4534,755],{"class":728},[704,4536,1409],{"class":728},[704,4538,808],{"class":714},[704,4540,1131],{"class":728},[704,4542,725],{"class":714},[704,4544,1363],{"class":728},[693,4546,4551],{"className":4547,"code":4548,"filename":4549,"language":4550,"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)","json",[701,4552,4553,4557,4579,4597,4615,4630,4670,4706,4751],{"__ignoreMap":699},[704,4554,4555],{"class":706,"line":707},[704,4556,1654],{"class":714},[704,4558,4559,4562,4565,4568,4570,4573,4575,4577],{"class":706,"line":737},[704,4560,4561],{"class":714},"  \"",[704,4563,4564],{"class":970},"level",[704,4566,4567],{"class":714},"\"",[704,4569,765],{"class":714},[704,4571,4572],{"class":714}," \"",[704,4574,719],{"class":728},[704,4576,4567],{"class":714},[704,4578,2652],{"class":714},[704,4580,4581,4583,4585,4587,4589,4591,4593,4595],{"class":706,"line":781},[704,4582,4561],{"class":714},[704,4584,1797],{"class":970},[704,4586,4567],{"class":714},[704,4588,765],{"class":714},[704,4590,4572],{"class":714},[704,4592,1896],{"class":728},[704,4594,4567],{"class":714},[704,4596,2652],{"class":714},[704,4598,4599,4601,4603,4605,4607,4609,4611,4613],{"class":706,"line":821},[704,4600,4561],{"class":714},[704,4602,1801],{"class":970},[704,4604,4567],{"class":714},[704,4606,765],{"class":714},[704,4608,4572],{"class":714},[704,4610,1910],{"class":728},[704,4612,4567],{"class":714},[704,4614,2652],{"class":714},[704,4616,4617,4619,4622,4624,4626,4628],{"class":706,"line":841},[704,4618,4561],{"class":714},[704,4620,4621],{"class":970},"duration",[704,4623,4567],{"class":714},[704,4625,765],{"class":714},[704,4627,889],{"class":888},[704,4629,2652],{"class":714},[704,4631,4632,4634,4636,4638,4640,4642,4644,4646,4648,4650,4652,4654,4656,4658,4660,4662,4664,4666,4668],{"class":706,"line":861},[704,4633,4561],{"class":714},[704,4635,3678],{"class":970},[704,4637,4567],{"class":714},[704,4639,765],{"class":714},[704,4641,758],{"class":714},[704,4643,4572],{"class":714},[704,4645,1683],{"class":1335},[704,4647,4567],{"class":714},[704,4649,765],{"class":714},[704,4651,1015],{"class":888},[704,4653,755],{"class":714},[704,4655,4572],{"class":714},[704,4657,1710],{"class":1335},[704,4659,4567],{"class":714},[704,4661,765],{"class":714},[704,4663,4572],{"class":714},[704,4665,1027],{"class":728},[704,4667,4567],{"class":714},[704,4669,3479],{"class":714},[704,4671,4672,4674,4676,4678,4680,4682,4684,4686,4688,4690,4692,4694,4696,4698,4700,4702,4704],{"class":706,"line":1090},[704,4673,4561],{"class":714},[704,4675,3756],{"class":970},[704,4677,4567],{"class":714},[704,4679,765],{"class":714},[704,4681,758],{"class":714},[704,4683,4572],{"class":714},[704,4685,2948],{"class":1335},[704,4687,4567],{"class":714},[704,4689,765],{"class":714},[704,4691,1071],{"class":888},[704,4693,755],{"class":714},[704,4695,4572],{"class":714},[704,4697,2969],{"class":1335},[704,4699,4567],{"class":714},[704,4701,765],{"class":714},[704,4703,1081],{"class":888},[704,4705,3479],{"class":714},[704,4707,4708,4710,4713,4715,4717,4719,4721,4723,4725,4727,4729,4731,4733,4735,4737,4739,4741,4743,4745,4747,4749],{"class":706,"line":1586},[704,4709,4561],{"class":714},[704,4711,4712],{"class":970},"payment",[704,4714,4567],{"class":714},[704,4716,765],{"class":714},[704,4718,758],{"class":714},[704,4720,4572],{"class":714},[704,4722,1797],{"class":1335},[704,4724,4567],{"class":714},[704,4726,765],{"class":714},[704,4728,4572],{"class":714},[704,4730,1117],{"class":728},[704,4732,4567],{"class":714},[704,4734,755],{"class":714},[704,4736,4572],{"class":714},[704,4738,3799],{"class":1335},[704,4740,4567],{"class":714},[704,4742,765],{"class":714},[704,4744,4572],{"class":714},[704,4746,1131],{"class":728},[704,4748,4567],{"class":714},[704,4750,1363],{"class":714},[704,4752,4753],{"class":706,"line":1615},[704,4754,1729],{"class":714},[682,4756,4758],{"id":4757},"next-steps","Next Steps",[644,4760,4761,4766,4771,4776],{},[647,4762,4763,4765],{},[628,4764,46],{"href":47}," - Fire-and-forget logs when you don't need context accumulation",[647,4767,4768,4770],{},[628,4769,76],{"href":77}," - Add compile-time type safety to your wide events",[647,4772,4773,4775],{},[628,4774,56],{"href":57}," - Errors with actionable context",[647,4777,4778,4780],{},[628,4779,231],{"href":236}," - Auto-managed request logging per framework",[4782,4783,4784],"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":4786},[4787,4788,4796,4799,4805,4812,4813],{"id":684,"depth":737,"text":685},{"id":1431,"depth":737,"text":1432,"children":4789},[4790,4792,4794],{"id":1436,"depth":781,"text":4791},"createLogger (General Purpose)",{"id":1781,"depth":781,"text":4793},"createRequestLogger (HTTP Contexts)",{"id":2029,"depth":781,"text":4795},"useLogger (Retrieving the Request Logger)",{"id":2247,"depth":737,"text":2248,"children":4797},[4798],{"id":2318,"depth":781,"text":2321},{"id":2562,"depth":737,"text":2563,"children":4800},[4801,4802,4803,4804],{"id":2579,"depth":781,"text":2580},{"id":2794,"depth":781,"text":2795},{"id":2889,"depth":781,"text":2890},{"id":3063,"depth":781,"text":3064},{"id":3246,"depth":737,"text":570,"children":4806},[4807,4808,4809,4810,4811],{"id":3249,"depth":781,"text":3250},{"id":3349,"depth":781,"text":3350},{"id":3512,"depth":781,"text":3513},{"id":3920,"depth":781,"text":3921},{"id":4322,"depth":781,"text":4323},{"id":4456,"depth":737,"text":4457},{"id":4757,"depth":737,"text":4758},"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",[4817,4819],{"label":56,"icon":59,"to":57,"color":624,"variant":4818},"subtle",{"label":570,"icon":388,"to":571,"color":624,"variant":4818},{},{"icon":54},{"title":51,"description":4814},"_-MHW1qSpHWdAODh5k7p-pA7X9xHWh6tilXG9b3-uRQ",[4825,4827],{"title":46,"path":47,"stem":48,"description":4826,"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":4828,"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.",1789294025599]