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