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