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