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