[{"data":1,"prerenderedAt":1360},["ShallowReactive",2],{"navigation_docs":3,"-integrate-frameworks-overview":505,"-integrate-frameworks-overview-surround":1355},[4,30,80,123,288,420,475],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"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",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"children":127,"page":29},"Integrate","\u002Fintegrate","4.integrate",[128,132,200],{"title":36,"path":129,"stem":130,"icon":131},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,140,180],{"title":36,"path":138,"stem":139,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":141,"path":142,"stem":143,"children":144,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[145,150,155,160,165,170,175],{"title":146,"path":147,"stem":148,"icon":149},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":151,"path":152,"stem":153,"icon":154},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","4.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"icon":179},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","4.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":181,"path":182,"stem":183,"children":184,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[185,190,195],{"title":186,"path":187,"stem":188,"icon":189},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":191,"path":192,"stem":193,"icon":194},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":196,"path":197,"stem":198,"icon":199},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[205,209,214,219,224,229,234,239,244,249,254,259,264,269,273,278,283],{"title":36,"path":206,"stem":207,"icon":208},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":210,"path":211,"stem":212,"icon":213},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":215,"path":216,"stem":217,"icon":218},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":220,"path":221,"stem":222,"icon":223},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":225,"path":226,"stem":227,"icon":228},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":230,"path":231,"stem":232,"icon":233},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":235,"path":236,"stem":237,"icon":238},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":240,"path":241,"stem":242,"icon":243},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":245,"path":246,"stem":247,"icon":248},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":250,"path":251,"stem":252,"icon":253},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":255,"path":256,"stem":257,"icon":258},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":260,"path":261,"stem":262,"icon":263},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":265,"path":266,"stem":267,"icon":268},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":270,"path":271,"stem":272,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":274,"path":275,"stem":276,"icon":277},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":279,"path":280,"stem":281,"icon":282},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":284,"path":285,"stem":286,"icon":287},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":289,"path":290,"stem":291,"children":292,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[293,296,301,330,357,389,410,415],{"title":36,"path":294,"stem":295,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":297,"path":298,"stem":299,"icon":300},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":302,"icon":303,"path":304,"stem":305,"children":306,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[307,310,315,320,325],{"title":36,"path":308,"stem":309,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":311,"path":312,"stem":313,"icon":314},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":316,"path":317,"stem":318,"icon":319},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":321,"path":322,"stem":323,"icon":324},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":326,"path":327,"stem":328,"icon":329},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":331,"icon":332,"path":333,"stem":334,"children":335,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[336,339,344,349,353],{"title":36,"path":337,"stem":338,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":340,"path":341,"stem":342,"icon":343},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":345,"path":346,"stem":347,"icon":348},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":350,"path":351,"stem":352,"icon":300},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":354,"path":355,"stem":356,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":358,"icon":359,"path":360,"stem":361,"children":362,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[363,366,371,376,381,385],{"title":36,"path":364,"stem":365,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":367,"path":368,"stem":369,"icon":370},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":372,"path":373,"stem":374,"icon":375},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":377,"path":378,"stem":379,"icon":380},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":382,"path":383,"stem":384,"icon":359},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":386,"path":387,"stem":388,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":326,"icon":107,"path":390,"stem":391,"children":392,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[393,396,401,406],{"title":36,"path":394,"stem":395,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":397,"path":398,"stem":399,"icon":400},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":402,"path":403,"stem":404,"icon":405},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":407,"path":408,"stem":409,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":411,"path":412,"stem":413,"icon":414},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":416,"path":417,"stem":418,"icon":419},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":421,"path":422,"stem":423,"children":424,"page":29},"Extend","\u002Fextend","6.extend",[425,429,434,439,444,448,452,456,460,465,470],{"title":36,"path":426,"stem":427,"icon":428},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":430,"path":431,"stem":432,"icon":433},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":435,"path":436,"stem":437,"icon":438},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":440,"path":441,"stem":442,"icon":443},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":386,"path":445,"stem":446,"icon":447},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":449,"path":450,"stem":451,"icon":428},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":453,"path":454,"stem":455,"icon":414},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":457,"path":458,"stem":459,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":461,"path":462,"stem":463,"icon":464},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":466,"path":467,"stem":468,"icon":469},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":471,"path":472,"stem":473,"icon":474},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":407,"path":476,"stem":477,"children":478,"page":29},"\u002Freference","7.reference",[479,484,487,492,496,501],{"title":480,"path":481,"stem":482,"icon":483},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":354,"path":485,"stem":486,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":488,"path":489,"stem":490,"icon":491},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":493,"path":494,"stem":495,"icon":359},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":497,"path":498,"stem":499,"icon":500},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":502,"path":503,"stem":504,"icon":414},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":506,"title":507,"body":508,"description":1348,"extension":1349,"links":1350,"meta":1351,"navigation":1352,"path":206,"seo":1353,"stem":207,"__hash__":1354},"docs\u002F4.integrate\u002Fframeworks\u002F00.overview.md","Framework Integrations",{"type":509,"value":510,"toc":1335},"minimark",[511,527,541,545,956,960,972,976,1039,1043,1128,1141,1145,1198,1202,1261,1282,1285,1295,1329],[512,513,514,515,519,520,519,523,526],"p",{},"evlog provides native integrations for every major TypeScript framework. The same core API (",[516,517,518],"code",{},"log.set()",", ",[516,521,522],{},"createError()",[516,524,525],{},"parseError()",") works identically everywhere. Only the setup differs.",[528,529,532,533,537,538,540],"callout",{"color":530,"icon":531},"neutral","i-lucide-globe","No HTTP framework? Use ",[534,535,536],"a",{"href":271},"Standalone TypeScript"," for scripts, libraries, and workers, and ",[534,539,265],{"href":266}," on the edge.",[542,543,36],"h2",{"id":544},"overview",[546,547,548,570],"table",{},[549,550,551],"thead",{},[552,553,554,558,561,564,567],"tr",{},[555,556,557],"th",{},"Framework",[555,559,560],{},"Import",[555,562,563],{},"Type",[555,565,566],{},"Logger Access",[555,568,569],{},"Status",[571,572,573,596,617,641,660,680,698,720,739,761,781,804,827,850,870,895,915,933],"tbody",{},[552,574,575,580,585,588,593],{},[576,577,578],"td",{},[534,579,210],{"href":211},[576,581,582],{},[516,583,584],{},"evlog\u002Fnuxt",[576,586,587],{},"Module",[576,589,590],{},[516,591,592],{},"useLogger(event)",[576,594,595],{},"Stable",[552,597,598,602,607,610,615],{},[576,599,600],{},[534,601,215],{"href":216},[576,603,604],{},[516,605,606],{},"evlog\u002Fnext",[576,608,609],{},"Factory",[576,611,612],{},[516,613,614],{},"useLogger()",[576,616,595],{},[552,618,619,623,628,631,639],{},[576,620,621],{},[534,622,220],{"href":221},[576,624,625],{},[516,626,627],{},"evlog\u002Fsveltekit",[576,629,630],{},"Hooks",[576,632,633,636,637],{},[516,634,635],{},"event.locals.log"," \u002F ",[516,638,614],{},[576,640,595],{},[552,642,643,647,652,654,658],{},[576,644,645],{},[534,646,225],{"href":226},[576,648,649],{},[516,650,651],{},"evlog\u002Fnitro",[576,653,587],{},[576,655,656],{},[516,657,592],{},[576,659,595],{},[552,661,662,666,671,673,678],{},[576,663,664],{},[534,665,230],{"href":231},[576,667,668],{},[516,669,670],{},"evlog\u002Fnitro\u002Fv3",[576,672,587],{},[576,674,675],{},[516,676,677],{},"useRequest().context.log",[576,679,595],{},[552,681,682,687,691,693,696],{},[576,683,684],{},[534,685,686],{"href":231},"TanStack Router",[576,688,689],{},[516,690,670],{},[576,692,587],{},[576,694,695],{},"Via TanStack Start (uses Nitro v3)",[576,697,595],{},[552,699,700,704,709,711,718],{},[576,701,702],{},[534,703,260],{"href":261},[576,705,706],{},[516,707,708],{},"evlog\u002Freact-router",[576,710,345],{},[576,712,713,636,716],{},[516,714,715],{},"context.get(loggerContext)",[516,717,614],{},[576,719,595],{},[552,721,722,726,731,733,737],{},[576,723,724],{},[534,725,235],{"href":236},[576,727,728],{},[516,729,730],{},"evlog\u002Fnestjs",[576,732,587],{},[576,734,735],{},[516,736,614],{},[576,738,595],{},[552,740,741,745,750,752,759],{},[576,742,743],{},[534,744,240],{"href":241},[576,746,747],{},[516,748,749],{},"evlog\u002Fexpress",[576,751,345],{},[576,753,754,636,757],{},[516,755,756],{},"req.log",[516,758,614],{},[576,760,595],{},[552,762,763,767,772,774,779],{},[576,764,765],{},[534,766,245],{"href":246},[576,768,769],{},[516,770,771],{},"evlog\u002Fhono",[576,773,345],{},[576,775,776],{},[516,777,778],{},"c.get('log')",[576,780,595],{},[552,782,783,787,792,795,802],{},[576,784,785],{},[534,786,250],{"href":251},[576,788,789],{},[516,790,791],{},"evlog\u002Ffastify",[576,793,794],{},"Plugin",[576,796,797,636,800],{},[516,798,799],{},"request.log",[516,801,614],{},[576,803,595],{},[552,805,806,810,815,817,825],{},[576,807,808],{},[534,809,255],{"href":256},[576,811,812],{},[516,813,814],{},"evlog\u002Felysia",[576,816,794],{},[576,818,819,822,823],{},[516,820,821],{},"log"," (context) \u002F ",[516,824,614],{},[576,826,595],{},[552,828,829,833,838,841,848],{},[576,830,831],{},[534,832,279],{"href":280},[576,834,835],{},[516,836,837],{},"evlog\u002Forpc",[576,839,840],{},"Handler wrapper + middleware",[576,842,843,636,846],{},[516,844,845],{},"context.log",[516,847,614],{},[576,849,595],{},[552,851,852,856,861,863,868],{},[576,853,854],{},[534,855,265],{"href":266},[576,857,858],{},[516,859,860],{},"evlog\u002Fworkers",[576,862,609],{},[576,864,865],{},[516,866,867],{},"createWorkersLogger()",[576,869,595],{},[552,871,872,876,881,884,892],{},[576,873,874],{},[534,875,284],{"href":285},[576,877,878],{},[516,879,880],{},"evlog",[576,882,883],{},"Manual",[576,885,886,636,889],{},[516,887,888],{},"createLogger()",[516,890,891],{},"createRequestLogger()",[576,893,894],{},"Guide",[552,896,897,901,905,907,913],{},[576,898,899],{},[534,900,270],{"href":271},[576,902,903],{},[516,904,880],{},[576,906,883],{},[576,908,909,636,911],{},[516,910,888],{},[516,912,891],{},[576,914,595],{},[552,916,917,921,925,927,931],{},[576,918,919],{},[534,920,274],{"href":275},[576,922,923],{},[516,924,880],{},[576,926,883],{},[576,928,929],{},[516,930,891],{},[576,932,894],{},[552,934,935,940,945,948,953],{},[576,936,937],{},[534,938,939],{"href":436},"Custom",[576,941,942],{},[516,943,944],{},"evlog\u002Ftoolkit",[576,946,947],{},"Build your own",[576,949,950],{},[516,951,952],{},"createMiddlewareLogger()",[576,954,955],{},"Beta",[542,957,959],{"id":958},"api-cheat-sheet","API cheat sheet",[512,961,962,963,967,968,971],{},"Two things differ per framework: how you ",[964,965,966],"strong",{},"bootstrap"," evlog, and how you ",[964,969,970],{},"access the request logger",".",[973,974,975],"h3",{"id":966},"Bootstrap",[546,977,978,987],{},[549,979,980],{},[552,981,982,985],{},[555,983,984],{},"Pattern",[555,986,201],{},[571,988,989,1000,1010,1019,1027],{},[552,990,991,997],{},[576,992,993,996],{},[516,994,995],{},"evlog(options)"," middleware \u002F plugin",[576,998,999],{},"Hono, Express, Fastify, Elysia, SvelteKit, React Router",[552,1001,1002,1008],{},[576,1003,1004,1007],{},[516,1005,1006],{},"createEvlog(options)"," factory",[576,1009,215],{},[552,1011,1012,1017],{},[576,1013,1014],{},[516,1015,1016],{},"EvlogModule.forRoot()",[576,1018,235],{},[552,1020,1021,1024],{},[576,1022,1023],{},"Module default export",[576,1025,1026],{},"Nuxt, Nitro v2\u002Fv3",[552,1028,1029,1032],{},[576,1030,1031],{},"Manual factory",[576,1033,1034,1035,1038],{},"Cloudflare Workers (",[516,1036,1037],{},"createWorkersLogger","), Standalone, AWS Lambda, Astro",[973,1040,1042],{"id":1041},"logger-access","Logger access",[546,1044,1045,1053],{},[549,1046,1047],{},[552,1048,1049,1051],{},[555,1050,984],{},[555,1052,201],{},[571,1054,1055,1064,1073,1085,1093,1101,1109,1117],{},[552,1056,1057,1061],{},[576,1058,1059],{},[516,1060,592],{},[576,1062,1063],{},"Nuxt, Nitro",[552,1065,1066,1070],{},[576,1067,1068],{},[516,1069,614],{},[576,1071,1072],{},"Next.js, NestJS, Express, Fastify, Elysia, SvelteKit, React Router",[552,1074,1075,1079],{},[576,1076,1077],{},[516,1078,778],{},[576,1080,1081,1082,1084],{},"Hono — no ",[516,1083,614],{}," export",[552,1086,1087,1091],{},[576,1088,1089],{},[516,1090,756],{},[576,1092,240],{},[552,1094,1095,1099],{},[576,1096,1097],{},[516,1098,799],{},[576,1100,250],{},[552,1102,1103,1107],{},[576,1104,1105],{},[516,1106,635],{},[576,1108,220],{},[552,1110,1111,1115],{},[576,1112,1113],{},[516,1114,715],{},[576,1116,260],{},[552,1118,1119,1125],{},[576,1120,1121,636,1123],{},[516,1122,891],{},[516,1124,888],{},[576,1126,1127],{},"Standalone, Workers, manual setups",[528,1129,1131,1132,1134,1135,1137,1138,971],{"color":1130,"icon":13},"info","Hono intentionally has no ",[516,1133,614],{}," — use ",[516,1136,778],{}," inside handlers. See ",[534,1139,1140],{"href":246},"Hono integration",[542,1142,1144],{"id":1143},"full-stack-frameworks","Full-Stack Frameworks",[1146,1147,1148,1163,1173,1178,1181,1184,1193],"card-group",{},[1149,1150,1151,1152,519,1155,1158,1159,1162],"card",{"color":530,"icon":213,"title":210,"to":211},"Auto-imported ",[516,1153,1154],{},"useLogger",[516,1156,1157],{},"createError",", and ",[516,1160,1161],{},"parseError",". Zero config.",[1149,1164,1165,1168,1169,1172],{"color":530,"icon":218,"title":215,"to":216},[516,1166,1167],{},"createEvlog()"," factory with ",[516,1170,1171],{},"withEvlog()"," handler wrapper and client provider.",[1149,1174,1175,1176,971],{"color":530,"icon":223,"title":220,"to":221},"Handle and handleError hooks with request-scoped logger on ",[516,1177,635],{},[1149,1179,1180],{"color":530,"icon":228,"title":225,"to":226},"Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.",[1149,1182,1183],{"color":530,"icon":233,"title":230,"to":231},"Uses Nitro v3 module with async context for seamless logging in server functions. Also covers TanStack Router (full-stack mode).",[1149,1185,1186,1187,1189,1190,1192],{"color":530,"icon":263,"title":260,"to":261},"Middleware with ",[516,1188,715],{}," and ",[516,1191,614],{}," for loaders and services.",[1149,1194,1195,1197],{"color":530,"icon":238,"title":235,"to":236},[516,1196,1016],{}," with global middleware, exception filter, and async config.",[542,1199,1201],{"id":1200},"server-frameworks","Server Frameworks",[1146,1203,1204,1209,1218,1224,1232,1241,1244,1254,1257],{},[1149,1205,1186,1206,1208],{"color":530,"icon":243,"title":240,"to":241},[516,1207,756],{}," and 4-argument error handler.",[1149,1210,1211,1212,1214,1215,971],{"color":530,"icon":248,"title":245,"to":246},"Middleware with typed ",[516,1213,778],{}," via ",[516,1216,1217],{},"EvlogVariables",[1149,1219,1220,1221,1223],{"color":530,"icon":253,"title":250,"to":251},"Plugin with ",[516,1222,799],{}," that shadows Fastify's built-in pino logger.",[1149,1225,1220,1226,1228,1229,971],{"color":530,"icon":258,"title":255,"to":256},[516,1227,821],{}," in route context via Elysia's ",[516,1230,1231],{},"derive",[1149,1233,1234,1235,1237,1238,971],{"color":530,"icon":282,"title":279,"to":280},"Handler wrapper + procedure middleware exposing ",[516,1236,845],{}," and per-procedure ",[516,1239,1240],{},"operation",[1149,1242,1243],{"color":530,"icon":268,"title":265,"to":266},"Factory for creating request-scoped loggers with Cloudflare-specific context.",[1149,1245,1246,1249,1250,1253],{"color":530,"icon":287,"title":284,"to":285},[516,1247,1248],{},"initLogger"," once per runtime; ",[516,1251,1252],{},"createLogger"," per invocation (SQS, events, HTTP API).",[1149,1255,1256],{"color":530,"icon":74,"title":270,"to":271},"For scripts, CLI tools, queues, and any TypeScript process.",[1149,1258,1260],{"color":530,"icon":438,"title":1259,"to":436},"Custom Integration","Build your own middleware with the evlog toolkit API.",[528,1262,1263,1264,519,1267,519,1270,519,1273,519,1276,1158,1279,971],{"color":1130,"icon":13},"All frameworks support the same features: ",[534,1265,1266],{"href":47},"wide events",[534,1268,1269],{"href":52},"structured errors",[534,1271,1272],{"href":138},"drain adapters",[534,1274,1275],{"href":412},"enrichers",[534,1277,1278],{"href":62},"sampling",[534,1280,1281],{"href":308},"AI SDK integration",[542,1283,488],{"id":1284},"vite-plugin",[512,1286,1287,1288,1294],{},"For any Vite-based project, the ",[534,1289,1290,1293],{"href":489},[516,1291,1292],{},"evlog\u002Fvite"," plugin"," adds build-time optimizations:",[1296,1297,1298,1309,1319],"ul",{},[1299,1300,1301,1304,1305,1308],"li",{},[964,1302,1303],{},"Auto-initialization",": no ",[516,1306,1307],{},"initLogger()"," call needed",[1299,1310,1311,1314,1315,1318],{},[964,1312,1313],{},"Debug stripping",": ",[516,1316,1317],{},"log.debug()"," removed from production builds",[1299,1320,1321,1324,1325,1328],{},[964,1322,1323],{},"Source location",": inject ",[516,1326,1327],{},"__source: 'file:line'"," into log calls",[512,1330,1331,1332,1334],{},"Works with SvelteKit, Hono (via vite-node), and any Vite-powered setup. Nuxt users get these features via the ",[516,1333,584],{}," module options.",{"title":1336,"searchDepth":1337,"depth":1337,"links":1338},"",2,[1339,1340,1345,1346,1347],{"id":544,"depth":1337,"text":36},{"id":958,"depth":1337,"text":959,"children":1341},[1342,1344],{"id":966,"depth":1343,"text":975},3,{"id":1041,"depth":1343,"text":1042},{"id":1143,"depth":1337,"text":1144},{"id":1200,"depth":1337,"text":1201},{"id":1284,"depth":1337,"text":488},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.","md",null,{},{"title":36,"icon":208},{"title":507,"description":1348},"UGpwOMMSn8sZIOnMGuGpttN9tFum8GaGBWk_bL29KV8",[1356,1358],{"title":196,"path":197,"stem":198,"description":1357,"icon":199,"children":-1},"Store wide events in an in-memory ring buffer. Works in any runtime — including Cloudflare Workers (workerd) — where the file system is unavailable.",{"title":210,"path":211,"stem":212,"description":1359,"icon":213,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.",1785224886215]