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