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