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