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