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