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