[{"data":1,"prerenderedAt":1022},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-overview":388,"-frameworks-overview-surround":1017},[4,35,155,197,285,372],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,94,122],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":66,"icon":67,"path":68,"stem":69,"children":70,"page":34},"AI SDK","i-simple-icons-vercel","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk",[71,74,79,84,89],{"title":41,"path":72,"stem":73,"icon":44},"\u002Flogging\u002Fai-sdk\u002Foverview","2.logging\u002F5.ai-sdk\u002F01.overview",{"title":75,"path":76,"stem":77,"icon":78},"Usage","\u002Flogging\u002Fai-sdk\u002Fusage","2.logging\u002F5.ai-sdk\u002F02.usage","i-lucide-code",{"title":80,"path":81,"stem":82,"icon":83},"Options","\u002Flogging\u002Fai-sdk\u002Foptions","2.logging\u002F5.ai-sdk\u002F03.options","i-lucide-sliders",{"title":85,"path":86,"stem":87,"icon":88},"Metadata","\u002Flogging\u002Fai-sdk\u002Fmetadata","2.logging\u002F5.ai-sdk\u002F04.metadata","i-lucide-database",{"title":90,"path":91,"stem":92,"icon":93},"Telemetry","\u002Flogging\u002Fai-sdk\u002Ftelemetry","2.logging\u002F5.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":95,"icon":96,"path":97,"stem":98,"children":99,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth",[100,103,108,113,117],{"title":41,"path":101,"stem":102,"icon":44},"\u002Flogging\u002Fbetter-auth\u002Foverview","2.logging\u002F6.better-auth\u002F01.overview",{"title":104,"path":105,"stem":106,"icon":107},"Identify User","\u002Flogging\u002Fbetter-auth\u002Fidentify-user","2.logging\u002F6.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":109,"path":110,"stem":111,"icon":112},"Middleware","\u002Flogging\u002Fbetter-auth\u002Fmiddleware","2.logging\u002F6.better-auth\u002F03.middleware","i-lucide-shield",{"title":114,"path":115,"stem":116,"icon":64},"Client Sync","\u002Flogging\u002Fbetter-auth\u002Fclient-sync","2.logging\u002F6.better-auth\u002F04.client-sync",{"title":118,"path":119,"stem":120,"icon":121},"Performance","\u002Flogging\u002Fbetter-auth\u002Fperformance","2.logging\u002F6.better-auth\u002F05.performance","i-lucide-gauge",{"title":123,"icon":124,"path":125,"stem":126,"children":127,"page":34},"Audit Logs","i-lucide-shield-check","\u002Flogging\u002Faudit","2.logging\u002F7.audit",[128,131,136,141,146,150],{"title":41,"path":129,"stem":130,"icon":44},"\u002Flogging\u002Faudit\u002Foverview","2.logging\u002F7.audit\u002F01.overview",{"title":132,"path":133,"stem":134,"icon":135},"Schema","\u002Flogging\u002Faudit\u002Fschema","2.logging\u002F7.audit\u002F02.schema","i-lucide-file-text",{"title":137,"path":138,"stem":139,"icon":140},"Recording","\u002Flogging\u002Faudit\u002Frecording","2.logging\u002F7.audit\u002F03.recording","i-lucide-pen-line",{"title":142,"path":143,"stem":144,"icon":145},"Drains","\u002Flogging\u002Faudit\u002Fpipeline","2.logging\u002F7.audit\u002F04.pipeline","i-lucide-link",{"title":147,"path":148,"stem":149,"icon":124},"Compliance","\u002Flogging\u002Faudit\u002Fcompliance","2.logging\u002F7.audit\u002F05.compliance",{"title":151,"path":152,"stem":153,"icon":154},"Recipes","\u002Flogging\u002Faudit\u002Frecipes","2.logging\u002F7.audit\u002F06.recipes","i-lucide-book-open",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[160,165,170,175,180,184,187,192],{"title":161,"path":162,"stem":163,"icon":164},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":166,"path":167,"stem":168,"icon":169},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":171,"path":172,"stem":173,"icon":174},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":176,"path":177,"stem":178,"icon":179},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":181,"path":182,"stem":183,"icon":124},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":118,"path":185,"stem":186,"icon":121},"\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance",{"title":188,"path":189,"stem":190,"icon":191},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":193,"path":194,"stem":195,"icon":196},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":198,"path":199,"stem":200,"children":201,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[202,206,211,216,221,226,231,236,241,246,251,256,261,266,270,275,280],{"title":41,"path":203,"stem":204,"icon":205},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":207,"path":208,"stem":209,"icon":210},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":212,"path":213,"stem":214,"icon":215},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":217,"path":218,"stem":219,"icon":220},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":222,"path":223,"stem":224,"icon":225},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":227,"path":228,"stem":229,"icon":230},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":232,"path":233,"stem":234,"icon":235},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":237,"path":238,"stem":239,"icon":240},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":242,"path":243,"stem":244,"icon":245},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":247,"path":248,"stem":249,"icon":250},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":252,"path":253,"stem":254,"icon":255},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":257,"path":258,"stem":259,"icon":260},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":262,"path":263,"stem":264,"icon":265},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":267,"path":268,"stem":269,"icon":179},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":271,"path":272,"stem":273,"icon":274},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":276,"path":277,"stem":278,"icon":279},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":281,"path":282,"stem":283,"icon":284},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":286,"path":287,"stem":288,"children":289,"page":34},"Adapters","\u002Fadapters","6.adapters",[290,293,333,348],{"title":41,"path":291,"stem":292,"icon":44},"\u002Fadapters\u002Foverview","6.adapters\u002F01.overview",{"title":294,"path":295,"stem":296,"children":297,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[298,303,308,313,318,323,328],{"title":299,"path":300,"stem":301,"icon":302},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":304,"path":305,"stem":306,"icon":307},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":309,"path":310,"stem":311,"icon":312},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":314,"path":315,"stem":316,"icon":317},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":319,"path":320,"stem":321,"icon":322},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":324,"path":325,"stem":326,"icon":327},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":329,"path":330,"stem":331,"icon":332},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":334,"path":335,"stem":336,"children":337,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[338,343],{"title":339,"path":340,"stem":341,"icon":342},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":344,"path":345,"stem":346,"icon":347},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":349,"path":350,"stem":351,"children":352,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[353,358,363,367],{"title":354,"path":355,"stem":356,"icon":357},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":359,"path":360,"stem":361,"icon":362},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":364,"path":365,"stem":366,"icon":78},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom",{"title":368,"path":369,"stem":370,"icon":371},"Toolkit","\u002Fadapters\u002Fbuilding-blocks\u002Ftoolkit","6.adapters\u002F04.building-blocks\u002F04.toolkit","i-lucide-blocks",{"title":373,"path":374,"stem":375,"children":376,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[377,380,384],{"title":41,"path":378,"stem":379,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":381,"path":382,"stem":383,"icon":284},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":385,"path":386,"stem":387,"icon":78},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":389,"title":390,"body":391,"description":1010,"extension":1011,"links":1012,"meta":1013,"navigation":1014,"path":203,"seo":1015,"stem":204,"__hash__":1016},"docs\u002F4.frameworks\u002F00.overview.md","Framework Integrations",{"type":392,"value":393,"toc":1002},"minimark",[394,410,423,427,814,818,873,877,926,948,951,961,996],[395,396,397,398,402,403,402,406,409],"p",{},"evlog provides native integrations for every major TypeScript framework. The same core API (",[399,400,401],"code",{},"log.set()",", ",[399,404,405],{},"createError()",[399,407,408],{},"parseError()",") works identically everywhere. Only the setup differs.",[411,412,414,415,419,420,422],"callout",{"color":413,"icon":362},"neutral","No HTTP framework? Use ",[416,417,418],"a",{"href":268},"Standalone TypeScript"," for scripts, libraries, and workers, and ",[416,421,262],{"href":263}," on the edge.",[424,425,41],"h2",{"id":426},"overview",[428,429,430,452],"table",{},[431,432,433],"thead",{},[434,435,436,440,443,446,449],"tr",{},[437,438,439],"th",{},"Framework",[437,441,442],{},"Import",[437,444,445],{},"Type",[437,447,448],{},"Logger Access",[437,450,451],{},"Status",[453,454,455,478,499,523,542,562,580,602,621,643,663,686,709,729,754,774,792],"tbody",{},[434,456,457,462,467,470,475],{},[458,459,460],"td",{},[416,461,207],{"href":208},[458,463,464],{},[399,465,466],{},"evlog\u002Fnuxt",[458,468,469],{},"Module",[458,471,472],{},[399,473,474],{},"useLogger(event)",[458,476,477],{},"Stable",[434,479,480,484,489,492,497],{},[458,481,482],{},[416,483,212],{"href":213},[458,485,486],{},[399,487,488],{},"evlog\u002Fnext",[458,490,491],{},"Factory",[458,493,494],{},[399,495,496],{},"useLogger()",[458,498,477],{},[434,500,501,505,510,513,521],{},[458,502,503],{},[416,504,217],{"href":218},[458,506,507],{},[399,508,509],{},"evlog\u002Fsveltekit",[458,511,512],{},"Hooks",[458,514,515,518,519],{},[399,516,517],{},"event.locals.log"," \u002F ",[399,520,496],{},[458,522,477],{},[434,524,525,529,534,536,540],{},[458,526,527],{},[416,528,222],{"href":223},[458,530,531],{},[399,532,533],{},"evlog\u002Fnitro",[458,535,469],{},[458,537,538],{},[399,539,474],{},[458,541,477],{},[434,543,544,548,553,555,560],{},[458,545,546],{},[416,547,227],{"href":228},[458,549,550],{},[399,551,552],{},"evlog\u002Fnitro\u002Fv3",[458,554,469],{},[458,556,557],{},[399,558,559],{},"useRequest().context.log",[458,561,477],{},[434,563,564,569,573,575,578],{},[458,565,566],{},[416,567,568],{"href":228},"TanStack Router",[458,570,571],{},[399,572,552],{},[458,574,469],{},[458,576,577],{},"Via TanStack Start (uses Nitro v3)",[458,579,477],{},[434,581,582,586,591,593,600],{},[458,583,584],{},[416,585,257],{"href":258},[458,587,588],{},[399,589,590],{},"evlog\u002Freact-router",[458,592,109],{},[458,594,595,518,598],{},[399,596,597],{},"context.get(loggerContext)",[399,599,496],{},[458,601,477],{},[434,603,604,608,613,615,619],{},[458,605,606],{},[416,607,232],{"href":233},[458,609,610],{},[399,611,612],{},"evlog\u002Fnestjs",[458,614,469],{},[458,616,617],{},[399,618,496],{},[458,620,477],{},[434,622,623,627,632,634,641],{},[458,624,625],{},[416,626,237],{"href":238},[458,628,629],{},[399,630,631],{},"evlog\u002Fexpress",[458,633,109],{},[458,635,636,518,639],{},[399,637,638],{},"req.log",[399,640,496],{},[458,642,477],{},[434,644,645,649,654,656,661],{},[458,646,647],{},[416,648,242],{"href":243},[458,650,651],{},[399,652,653],{},"evlog\u002Fhono",[458,655,109],{},[458,657,658],{},[399,659,660],{},"c.get('log')",[458,662,477],{},[434,664,665,669,674,677,684],{},[458,666,667],{},[416,668,247],{"href":248},[458,670,671],{},[399,672,673],{},"evlog\u002Ffastify",[458,675,676],{},"Plugin",[458,678,679,518,682],{},[399,680,681],{},"request.log",[399,683,496],{},[458,685,477],{},[434,687,688,692,697,699,707],{},[458,689,690],{},[416,691,252],{"href":253},[458,693,694],{},[399,695,696],{},"evlog\u002Felysia",[458,698,676],{},[458,700,701,704,705],{},[399,702,703],{},"log"," (context) \u002F ",[399,706,496],{},[458,708,477],{},[434,710,711,715,720,722,727],{},[458,712,713],{},[416,714,262],{"href":263},[458,716,717],{},[399,718,719],{},"evlog\u002Fworkers",[458,721,491],{},[458,723,724],{},[399,725,726],{},"createWorkersLogger()",[458,728,477],{},[434,730,731,735,740,743,751],{},[458,732,733],{},[416,734,276],{"href":277},[458,736,737],{},[399,738,739],{},"evlog",[458,741,742],{},"Manual",[458,744,745,518,748],{},[399,746,747],{},"createLogger()",[399,749,750],{},"createRequestLogger()",[458,752,753],{},"Guide",[434,755,756,760,764,766,772],{},[458,757,758],{},[416,759,267],{"href":268},[458,761,762],{},[399,763,739],{},[458,765,742],{},[458,767,768,518,770],{},[399,769,747],{},[399,771,750],{},[458,773,477],{},[434,775,776,780,784,786,790],{},[458,777,778],{},[416,779,271],{"href":272},[458,781,782],{},[399,783,739],{},[458,785,742],{},[458,787,788],{},[399,789,750],{},[458,791,753],{},[434,793,794,798,803,806,811],{},[458,795,796],{},[416,797,385],{"href":282},[458,799,800],{},[399,801,802],{},"evlog\u002Ftoolkit",[458,804,805],{},"Build your own",[458,807,808],{},[399,809,810],{},"createMiddlewareLogger()",[458,812,813],{},"Beta",[424,815,817],{"id":816},"full-stack-frameworks","Full-Stack Frameworks",[819,820,821,836,846,852,855,858,867],"card-group",{},[822,823,824,825,402,828,831,832,835],"card",{"color":413,"icon":210,"title":207,"to":208},"Auto-imported ",[399,826,827],{},"useLogger",[399,829,830],{},"createError",", and ",[399,833,834],{},"parseError",". Zero config.",[822,837,838,841,842,845],{"color":413,"icon":215,"title":212,"to":213},[399,839,840],{},"createEvlog()"," factory with ",[399,843,844],{},"withEvlog()"," handler wrapper and client provider.",[822,847,848,849,851],{"color":413,"icon":220,"title":217,"to":218},"Handle and handleError hooks with request-scoped logger on ",[399,850,517],{},".",[822,853,854],{"color":413,"icon":225,"title":222,"to":223},"Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.",[822,856,857],{"color":413,"icon":230,"title":227,"to":228},"Uses Nitro v3 module with async context for seamless logging in server functions. Also covers TanStack Router (full-stack mode).",[822,859,860,861,863,864,866],{"color":413,"icon":260,"title":257,"to":258},"Middleware with ",[399,862,597],{}," and ",[399,865,496],{}," for loaders and services.",[822,868,869,872],{"color":413,"icon":235,"title":232,"to":233},[399,870,871],{},"EvlogModule.forRoot()"," with global middleware, exception filter, and async config.",[424,874,876],{"id":875},"server-frameworks","Server Frameworks",[819,878,879,884,893,899,907,910,920,923],{},[822,880,860,881,883],{"color":413,"icon":240,"title":237,"to":238},[399,882,638],{}," and 4-argument error handler.",[822,885,886,887,889,890,851],{"color":413,"icon":245,"title":242,"to":243},"Middleware with typed ",[399,888,660],{}," via ",[399,891,892],{},"EvlogVariables",[822,894,895,896,898],{"color":413,"icon":250,"title":247,"to":248},"Plugin with ",[399,897,681],{}," that shadows Fastify's built-in pino logger.",[822,900,895,901,903,904,851],{"color":413,"icon":255,"title":252,"to":253},[399,902,703],{}," in route context via Elysia's ",[399,905,906],{},"derive",[822,908,909],{"color":413,"icon":265,"title":262,"to":263},"Factory for creating request-scoped loggers with Cloudflare-specific context.",[822,911,912,915,916,919],{"color":413,"icon":279,"title":276,"to":277},[399,913,914],{},"initLogger"," once per runtime; ",[399,917,918],{},"createLogger"," per invocation (SQS, events, HTTP API).",[822,921,922],{"color":413,"icon":179,"title":267,"to":268},"For scripts, CLI tools, queues, and any TypeScript process.",[822,924,925],{"color":413,"icon":284,"title":281,"to":282},"Build your own middleware with the evlog toolkit API.",[411,927,929,930,402,933,402,936,402,939,402,942,831,945,851],{"color":928,"icon":13},"info","All frameworks support the same features: ",[416,931,932],{"href":52},"wide events",[416,934,935],{"href":57},"structured errors",[416,937,938],{"href":291},"drain adapters",[416,940,941],{"href":378},"enrichers",[416,943,944],{"href":172},"sampling",[416,946,947],{"href":72},"AI SDK integration",[424,949,188],{"id":950},"vite-plugin",[395,952,953,954,960],{},"For any Vite-based project, the ",[416,955,956,959],{"href":189},[399,957,958],{},"evlog\u002Fvite"," plugin"," adds build-time optimizations:",[962,963,964,976,986],"ul",{},[965,966,967,971,972,975],"li",{},[968,969,970],"strong",{},"Auto-initialization",": no ",[399,973,974],{},"initLogger()"," call needed",[965,977,978,981,982,985],{},[968,979,980],{},"Debug stripping",": ",[399,983,984],{},"log.debug()"," removed from production builds",[965,987,988,991,992,995],{},[968,989,990],{},"Source location",": inject ",[399,993,994],{},"__source: 'file:line'"," into log calls",[395,997,998,999,1001],{},"Works with SvelteKit, Hono (via vite-node), and any Vite-powered setup. Nuxt users get these features via the ",[399,1000,466],{}," module options.",{"title":1003,"searchDepth":1004,"depth":1004,"links":1005},"",2,[1006,1007,1008,1009],{"id":426,"depth":1004,"text":41},{"id":816,"depth":1004,"text":817},{"id":875,"depth":1004,"text":876},{"id":950,"depth":1004,"text":188},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.","md",null,{},{"title":41,"icon":205},{"title":390,"description":1010},"6-aGENqWWWwQ7dTNr-FfcYPyZWzbZACGxVtZHsyFE24",[1018,1020],{"title":193,"path":194,"stem":195,"description":1019,"icon":196,"children":-1},"Automatically scrub PII from wide events before console output and drains. Built-in smart masking for credit cards, emails, IPs, phone numbers, JWTs, and more.",{"title":207,"path":208,"stem":209,"description":1021,"icon":210,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.",1777982703066]