[{"data":1,"prerenderedAt":1620},["ShallowReactive",2],{"navigation_docs":3,"-reference-vite-plugin":443,"-reference-vite-plugin-surround":1615},[4,30,80,249,357,412],{"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,245],{"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,"icon":44},"CLI","\u002Fintegrate\u002Fframeworks\u002Fcli","3.integrate\u002Fframeworks\u002F17.cli",{"title":250,"path":251,"stem":252,"children":253,"page":29},"Use Cases","\u002Fuse-cases","4.use-cases",[254,258,263,292,320,352],{"title":36,"path":255,"stem":256,"icon":257},"\u002Fuse-cases\u002Foverview","4.use-cases\u002F0.overview","i-lucide-list-checks",{"title":259,"path":260,"stem":261,"icon":262},"Client Logging","\u002Fuse-cases\u002Fclient-logging","4.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":264,"icon":265,"path":266,"stem":267,"children":268,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","4.use-cases\u002F2.ai-sdk",[269,272,277,282,287],{"title":36,"path":270,"stem":271,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","4.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":273,"path":274,"stem":275,"icon":276},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","4.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":278,"path":279,"stem":280,"icon":281},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","4.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":283,"path":284,"stem":285,"icon":286},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","4.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":288,"path":289,"stem":290,"icon":291},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","4.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":293,"icon":294,"path":295,"stem":296,"children":297,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","4.use-cases\u002F3.better-auth",[298,301,306,311,315],{"title":36,"path":299,"stem":300,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","4.use-cases\u002F3.better-auth\u002F01.overview",{"title":302,"path":303,"stem":304,"icon":305},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","4.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":307,"path":308,"stem":309,"icon":310},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","4.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":312,"path":313,"stem":314,"icon":262},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","4.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":316,"path":317,"stem":318,"icon":319},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","4.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","4.use-cases\u002F4.audit",[326,329,334,339,344,348],{"title":36,"path":327,"stem":328,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","4.use-cases\u002F4.audit\u002F01.overview",{"title":330,"path":331,"stem":332,"icon":333},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","4.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":335,"path":336,"stem":337,"icon":338},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","4.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":340,"path":341,"stem":342,"icon":343},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","4.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":345,"path":346,"stem":347,"icon":322},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","4.use-cases\u002F4.audit\u002F05.compliance",{"title":349,"path":350,"stem":351,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","4.use-cases\u002F4.audit\u002F06.recipes",{"title":353,"path":354,"stem":355,"icon":356},"Enrichers","\u002Fuse-cases\u002Fenrichers","4.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":358,"path":359,"stem":360,"children":361,"page":29},"Extend","\u002Fextend","5.extend",[362,366,371,376,381,385,389,393,397,402,407],{"title":36,"path":363,"stem":364,"icon":365},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":367,"path":368,"stem":369,"icon":370},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":372,"path":373,"stem":374,"icon":375},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":377,"path":378,"stem":379,"icon":380},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":349,"path":382,"stem":383,"icon":384},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":386,"path":387,"stem":388,"icon":365},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":390,"path":391,"stem":392,"icon":356},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":394,"path":395,"stem":396,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":398,"path":399,"stem":400,"icon":401},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":403,"path":404,"stem":405,"icon":406},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":408,"path":409,"stem":410,"icon":411},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":413,"path":414,"stem":415,"children":416,"page":29},"Reference","\u002Freference","6.reference",[417,422,425,430,434,439],{"title":418,"path":419,"stem":420,"icon":421},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":316,"path":423,"stem":424,"icon":319},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":426,"path":427,"stem":428,"icon":429},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":431,"path":432,"stem":433,"icon":322},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":435,"path":436,"stem":437,"icon":438},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":440,"path":441,"stem":442,"icon":356},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":444,"title":426,"body":445,"description":1602,"extension":1603,"links":1604,"meta":1611,"navigation":1612,"path":427,"seo":1613,"stem":428,"__hash__":1614},"docs\u002F6.reference\u002F3.vite-plugin.md",{"type":446,"value":447,"toc":1585},"minimark",[448,457,478,482,487,558,565,730,733,751,755,758,775,779,819,823,829,903,914,918,924,982,986,998,1042,1045,1064,1085,1089,1107,1208,1211,1420,1424,1435,1559,1563,1581],[449,450,451,452,456],"p",{},"The ",[453,454,455],"code",{},"evlog\u002Fvite"," plugin adds build-time DX features to any Vite-based project. It works with SvelteKit, Hono, Express, Fastify, Elysia, and any framework using Vite as its build tool.",[458,459,461,465,466,469,470,473,474,477],"callout",{"color":460,"icon":13},"info",[462,463,464],"strong",{},"Nuxt users",": These features are already integrated into the ",[453,467,468],{},"evlog\u002Fnuxt"," module via ",[453,471,472],{},"strip"," and ",[453,475,476],{},"sourceLocation"," options. You don't need to install the Vite plugin separately.",[479,480,25],"h2",{"id":481},"quick-start",[483,484,486],"h3",{"id":485},"_1-install","1. Install",[488,489,490,515,529,543],"code-group",{},[491,492,498],"pre",{"className":493,"code":494,"filename":495,"language":496,"meta":497,"style":497},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[453,499,500],{"__ignoreMap":497},[501,502,505,508,512],"span",{"class":503,"line":504},"line",1,[501,506,495],{"class":507},"sBMFI",[501,509,511],{"class":510},"sfazB"," add",[501,513,514],{"class":510}," evlog\n",[491,516,519],{"className":493,"code":517,"filename":518,"language":496,"meta":497,"style":497},"bun add evlog\n","bun",[453,520,521],{"__ignoreMap":497},[501,522,523,525,527],{"class":503,"line":504},[501,524,518],{"class":507},[501,526,511],{"class":510},[501,528,514],{"class":510},[491,530,533],{"className":493,"code":531,"filename":532,"language":496,"meta":497,"style":497},"yarn add evlog\n","yarn",[453,534,535],{"__ignoreMap":497},[501,536,537,539,541],{"class":503,"line":504},[501,538,532],{"class":507},[501,540,511],{"class":510},[501,542,514],{"class":510},[491,544,547],{"className":493,"code":545,"filename":546,"language":496,"meta":497,"style":497},"npm install evlog\n","npm",[453,548,549],{"__ignoreMap":497},[501,550,551,553,556],{"class":503,"line":504},[501,552,546],{"class":507},[501,554,555],{"class":510}," install",[501,557,514],{"class":510},[483,559,561,562],{"id":560},"_2-add-to-viteconfigts","2. Add to ",[453,563,564],{},"vite.config.ts",[491,566,570],{"className":567,"code":568,"filename":564,"language":569,"meta":497,"style":497},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineConfig } from 'vite'\nimport evlog from 'evlog\u002Fvite'\n\nexport default defineConfig({\n  plugins: [\n    evlog({\n      service: 'my-api',\n      environment: 'production',\n    }),\n  ],\n})\n","typescript",[453,571,572,601,618,625,643,656,666,685,702,713,721],{"__ignoreMap":497},[501,573,574,578,582,586,589,592,595,598],{"class":503,"line":504},[501,575,577],{"class":576},"s7zQu","import",[501,579,581],{"class":580},"sMK4o"," {",[501,583,585],{"class":584},"sTEyZ"," defineConfig",[501,587,588],{"class":580}," }",[501,590,591],{"class":576}," from",[501,593,594],{"class":580}," '",[501,596,597],{"class":510},"vite",[501,599,600],{"class":580},"'\n",[501,602,604,606,609,612,614,616],{"class":503,"line":603},2,[501,605,577],{"class":576},[501,607,608],{"class":584}," evlog ",[501,610,611],{"class":576},"from",[501,613,594],{"class":580},[501,615,455],{"class":510},[501,617,600],{"class":580},[501,619,621],{"class":503,"line":620},3,[501,622,624],{"emptyLinePlaceholder":623},true,"\n",[501,626,628,631,634,637,640],{"class":503,"line":627},4,[501,629,630],{"class":576},"export",[501,632,633],{"class":576}," default",[501,635,585],{"class":636},"s2Zo4",[501,638,639],{"class":584},"(",[501,641,642],{"class":580},"{\n",[501,644,646,650,653],{"class":503,"line":645},5,[501,647,649],{"class":648},"swJcz","  plugins",[501,651,652],{"class":580},":",[501,654,655],{"class":584}," [\n",[501,657,659,662,664],{"class":503,"line":658},6,[501,660,661],{"class":636},"    evlog",[501,663,639],{"class":584},[501,665,642],{"class":580},[501,667,669,672,674,676,679,682],{"class":503,"line":668},7,[501,670,671],{"class":648},"      service",[501,673,652],{"class":580},[501,675,594],{"class":580},[501,677,678],{"class":510},"my-api",[501,680,681],{"class":580},"'",[501,683,684],{"class":580},",\n",[501,686,688,691,693,695,698,700],{"class":503,"line":687},8,[501,689,690],{"class":648},"      environment",[501,692,652],{"class":580},[501,694,594],{"class":580},[501,696,697],{"class":510},"production",[501,699,681],{"class":580},[501,701,684],{"class":580},[501,703,705,708,711],{"class":503,"line":704},9,[501,706,707],{"class":580},"    }",[501,709,710],{"class":584},")",[501,712,684],{"class":580},[501,714,716,719],{"class":503,"line":715},10,[501,717,718],{"class":584},"  ]",[501,720,684],{"class":580},[501,722,724,727],{"class":503,"line":723},11,[501,725,726],{"class":580},"}",[501,728,729],{"class":584},")\n",[449,731,732],{},"That's it. The plugin automatically:",[734,735,736,744],"ul",{},[737,738,739,740,743],"li",{},"Initializes the logger at compile time (no ",[453,741,742],{},"initLogger()"," call needed)",[737,745,746,747,750],{},"Strips ",[453,748,749],{},"log.debug()"," calls from production builds",[479,752,754],{"id":753},"features","Features",[756,757],"vite-strip-build",{},[449,759,760,761,763,764,767,768,770,771,774],{},"The plugin transforms your source at build time — ",[453,762,749],{}," calls are deleted from the output, ",[453,765,766],{},"__source: 'file:line'"," is injected into object-form log calls, and ",[453,769,742],{}," is wired in via Vite's ",[453,772,773],{},"define"," hook so you never have to call it yourself.",[483,776,778],{"id":777},"auto-initialization","Auto-initialization",[449,780,781,782,784,785,788,789,788,792,788,795,788,798,801,802,805,806,788,809,801,812,815,816,818],{},"The plugin injects logger configuration at compile time via Vite's ",[453,783,773],{}," hook. The ",[453,786,787],{},"service",", ",[453,790,791],{},"environment",[453,793,794],{},"pretty",[453,796,797],{},"silent",[453,799,800],{},"enabled",", and ",[453,803,804],{},"sampling"," options are serialized and injected at build time, so ",[453,807,808],{},"log",[453,810,811],{},"createLogger()",[453,813,814],{},"createRequestLogger()"," work immediately without an ",[453,817,742],{}," call.",[483,820,822],{"id":821},"debug-stripping","Debug stripping",[449,824,825,826,828],{},"By default, all ",[453,827,749],{}," calls are removed from production builds. This is a compile-time transformation, the calls are completely eliminated from the output, not just silenced.",[491,830,832],{"className":567,"code":831,"filename":564,"language":569,"meta":497,"style":497},"evlog({\n  service: 'my-api',\n  \u002F\u002F Default: strip debug logs in production builds\n  \u002F\u002F strip: ['debug'],\n\n  \u002F\u002F Strip debug and info in production:\n  \u002F\u002F strip: ['debug', 'info'],\n\n  \u002F\u002F Disable stripping:\n  \u002F\u002F strip: [],\n})\n",[453,833,834,843,858,864,869,873,878,883,887,892,897],{"__ignoreMap":497},[501,835,836,839,841],{"class":503,"line":504},[501,837,838],{"class":636},"evlog",[501,840,639],{"class":584},[501,842,642],{"class":580},[501,844,845,848,850,852,854,856],{"class":503,"line":603},[501,846,847],{"class":648},"  service",[501,849,652],{"class":580},[501,851,594],{"class":580},[501,853,678],{"class":510},[501,855,681],{"class":580},[501,857,684],{"class":580},[501,859,860],{"class":503,"line":620},[501,861,863],{"class":862},"sHwdD","  \u002F\u002F Default: strip debug logs in production builds\n",[501,865,866],{"class":503,"line":627},[501,867,868],{"class":862},"  \u002F\u002F strip: ['debug'],\n",[501,870,871],{"class":503,"line":645},[501,872,624],{"emptyLinePlaceholder":623},[501,874,875],{"class":503,"line":658},[501,876,877],{"class":862},"  \u002F\u002F Strip debug and info in production:\n",[501,879,880],{"class":503,"line":668},[501,881,882],{"class":862},"  \u002F\u002F strip: ['debug', 'info'],\n",[501,884,885],{"class":503,"line":687},[501,886,624],{"emptyLinePlaceholder":623},[501,888,889],{"class":503,"line":704},[501,890,891],{"class":862},"  \u002F\u002F Disable stripping:\n",[501,893,894],{"class":503,"line":715},[501,895,896],{"class":862},"  \u002F\u002F strip: [],\n",[501,898,899,901],{"class":503,"line":723},[501,900,726],{"class":580},[501,902,729],{"class":584},[449,904,905,906,909,910,913],{},"Stripping only activates during ",[453,907,908],{},"vite build"," (not ",[453,911,912],{},"vite dev",").",[483,915,917],{"id":916},"source-location-injection","Source location injection",[449,919,920,921,923],{},"When enabled, the plugin injects ",[453,922,766],{}," into object-form log calls so you know exactly which file and line produced each log entry.",[491,925,927],{"className":567,"code":926,"filename":564,"language":569,"meta":497,"style":497},"evlog({\n  service: 'my-api',\n  sourceLocation: true,      \u002F\u002F Always inject\n  \u002F\u002F sourceLocation: 'dev',  \u002F\u002F Only in development\n})\n",[453,928,929,937,951,968,976],{"__ignoreMap":497},[501,930,931,933,935],{"class":503,"line":504},[501,932,838],{"class":636},[501,934,639],{"class":584},[501,936,642],{"class":580},[501,938,939,941,943,945,947,949],{"class":503,"line":603},[501,940,847],{"class":648},[501,942,652],{"class":580},[501,944,594],{"class":580},[501,946,678],{"class":510},[501,948,681],{"class":580},[501,950,684],{"class":580},[501,952,953,956,958,962,965],{"class":503,"line":620},[501,954,955],{"class":648},"  sourceLocation",[501,957,652],{"class":580},[501,959,961],{"class":960},"sfNiH"," true",[501,963,964],{"class":580},",",[501,966,967],{"class":862},"      \u002F\u002F Always inject\n",[501,969,970,973],{"class":503,"line":627},[501,971,972],{"class":862},"  \u002F\u002F sourceLocation: 'dev',",[501,974,975],{"class":862},"  \u002F\u002F Only in development\n",[501,977,978,980],{"class":503,"line":645},[501,979,726],{"class":580},[501,981,729],{"class":584},[483,983,985],{"id":984},"auto-imports-opt-in","Auto-imports (opt-in)",[449,987,988,989,788,991,788,994,997],{},"Automatically detect and import evlog symbols (",[453,990,808],{},[453,992,993],{},"createEvlogError",[453,995,996],{},"parseError",", etc.) without manual import statements. Disabled by default.",[491,999,1001],{"className":567,"code":1000,"filename":564,"language":569,"meta":497,"style":497},"evlog({\n  service: 'my-api',\n  autoImports: true,\n})\n",[453,1002,1003,1011,1025,1036],{"__ignoreMap":497},[501,1004,1005,1007,1009],{"class":503,"line":504},[501,1006,838],{"class":636},[501,1008,639],{"class":584},[501,1010,642],{"class":580},[501,1012,1013,1015,1017,1019,1021,1023],{"class":503,"line":603},[501,1014,847],{"class":648},[501,1016,652],{"class":580},[501,1018,594],{"class":580},[501,1020,678],{"class":510},[501,1022,681],{"class":580},[501,1024,684],{"class":580},[501,1026,1027,1030,1032,1034],{"class":503,"line":620},[501,1028,1029],{"class":648},"  autoImports",[501,1031,652],{"class":580},[501,1033,961],{"class":960},[501,1035,684],{"class":580},[501,1037,1038,1040],{"class":503,"line":627},[501,1039,726],{"class":580},[501,1041,729],{"class":584},[449,1043,1044],{},"When enabled, the plugin:",[1046,1047,1048,1051,1057],"ol",{},[737,1049,1050],{},"Scans your code for evlog symbols",[737,1052,1053,1054,1056],{},"Adds the correct ",[453,1055,577],{}," statements automatically",[737,1058,1059,1060,1063],{},"Generates a ",[453,1061,1062],{},".d.ts"," file for TypeScript support",[458,1065,1068,1069,1071,1072,1075,1076,1078,1079,1081,1082,1084],{"color":1066,"icon":1067},"amber","i-lucide-triangle-alert","The auto-imported error constructor is ",[453,1070,993],{},", not ",[453,1073,1074],{},"createError",". This avoids conflicts with framework-native ",[453,1077,1074],{}," (Nuxt, Nitro, h3). The standalone ",[453,1080,1074],{}," from ",[453,1083,838],{}," is still available via explicit import.",[483,1086,1088],{"id":1087},"client-side-injection","Client-side injection",[449,1090,1091,1092,1095,1096,1099,1100,788,1103,1106],{},"When the ",[453,1093,1094],{},"client"," option is provided, the plugin injects a ",[453,1097,1098],{},"\u003Cscript>"," tag into HTML pages that initializes the client-side logger. This enables ",[453,1101,1102],{},"log.info()",[453,1104,1105],{},"log.error()",", etc. in browser code.",[491,1108,1110],{"className":567,"code":1109,"filename":564,"language":569,"meta":497,"style":497},"evlog({\n  service: 'my-api',\n  client: {\n    console: false,\n    transport: {\n      enabled: true,\n      endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n    },\n  },\n})\n",[453,1111,1112,1120,1134,1144,1156,1165,1176,1192,1197,1202],{"__ignoreMap":497},[501,1113,1114,1116,1118],{"class":503,"line":504},[501,1115,838],{"class":636},[501,1117,639],{"class":584},[501,1119,642],{"class":580},[501,1121,1122,1124,1126,1128,1130,1132],{"class":503,"line":603},[501,1123,847],{"class":648},[501,1125,652],{"class":580},[501,1127,594],{"class":580},[501,1129,678],{"class":510},[501,1131,681],{"class":580},[501,1133,684],{"class":580},[501,1135,1136,1139,1141],{"class":503,"line":620},[501,1137,1138],{"class":648},"  client",[501,1140,652],{"class":580},[501,1142,1143],{"class":580}," {\n",[501,1145,1146,1149,1151,1154],{"class":503,"line":627},[501,1147,1148],{"class":648},"    console",[501,1150,652],{"class":580},[501,1152,1153],{"class":960}," false",[501,1155,684],{"class":580},[501,1157,1158,1161,1163],{"class":503,"line":645},[501,1159,1160],{"class":648},"    transport",[501,1162,652],{"class":580},[501,1164,1143],{"class":580},[501,1166,1167,1170,1172,1174],{"class":503,"line":658},[501,1168,1169],{"class":648},"      enabled",[501,1171,652],{"class":580},[501,1173,961],{"class":960},[501,1175,684],{"class":580},[501,1177,1178,1181,1183,1185,1188,1190],{"class":503,"line":668},[501,1179,1180],{"class":648},"      endpoint",[501,1182,652],{"class":580},[501,1184,594],{"class":580},[501,1186,1187],{"class":510},"\u002Fapi\u002F_evlog\u002Fingest",[501,1189,681],{"class":580},[501,1191,684],{"class":580},[501,1193,1194],{"class":503,"line":687},[501,1195,1196],{"class":580},"    },\n",[501,1198,1199],{"class":503,"line":704},[501,1200,1201],{"class":580},"  },\n",[501,1203,1204,1206],{"class":503,"line":715},[501,1205,726],{"class":580},[501,1207,729],{"class":584},[479,1209,418],{"id":1210},"configuration",[1212,1213,1214,1233],"table",{},[1215,1216,1217],"thead",{},[1218,1219,1220,1224,1227,1230],"tr",{},[1221,1222,1223],"th",{},"Option",[1221,1225,1226],{},"Type",[1221,1228,1229],{},"Default",[1221,1231,1232],{},"Description",[1234,1235,1236,1256,1272,1292,1310,1327,1346,1364,1382,1405],"tbody",{},[1218,1237,1238,1243,1248,1253],{},[1239,1240,1241],"td",{},[453,1242,787],{},[1239,1244,1245],{},[453,1246,1247],{},"string",[1239,1249,1250],{},[453,1251,1252],{},"'app'",[1239,1254,1255],{},"Service name in logs",[1218,1257,1258,1262,1266,1269],{},[1239,1259,1260],{},[453,1261,791],{},[1239,1263,1264],{},[453,1265,1247],{},[1239,1267,1268],{},"Auto-detected",[1239,1270,1271],{},"Environment name",[1218,1273,1274,1278,1283,1289],{},[1239,1275,1276],{},[453,1277,794],{},[1239,1279,1280],{},[453,1281,1282],{},"boolean",[1239,1284,1285,1288],{},[453,1286,1287],{},"true"," in dev",[1239,1290,1291],{},"Pretty print logs",[1218,1293,1294,1298,1302,1307],{},[1239,1295,1296],{},[453,1297,797],{},[1239,1299,1300],{},[453,1301,1282],{},[1239,1303,1304],{},[453,1305,1306],{},"false",[1239,1308,1309],{},"Suppress console output",[1218,1311,1312,1316,1320,1324],{},[1239,1313,1314],{},[453,1315,800],{},[1239,1317,1318],{},[453,1319,1282],{},[1239,1321,1322],{},[453,1323,1287],{},[1239,1325,1326],{},"Enable\u002Fdisable all logging",[1218,1328,1329,1333,1338,1343],{},[1239,1330,1331],{},[453,1332,472],{},[1239,1334,1335],{},[453,1336,1337],{},"LogLevel[]",[1239,1339,1340],{},[453,1341,1342],{},"['debug']",[1239,1344,1345],{},"Log levels to remove from production builds",[1218,1347,1348,1352,1357,1361],{},[1239,1349,1350],{},[453,1351,476],{},[1239,1353,1354],{},[453,1355,1356],{},"boolean | 'dev'",[1239,1358,1359],{},[453,1360,1306],{},[1239,1362,1363],{},"Inject source file:line into log calls",[1218,1365,1366,1371,1375,1379],{},[1239,1367,1368],{},[453,1369,1370],{},"autoImports",[1239,1372,1373],{},[453,1374,1282],{},[1239,1376,1377],{},[453,1378,1306],{},[1239,1380,1381],{},"Auto-import evlog symbols",[1218,1383,1384,1388,1393,1396],{},[1239,1385,1386],{},[453,1387,1094],{},[1239,1389,1390],{},[453,1391,1392],{},"object",[1239,1394,1395],{},"—",[1239,1397,1398,1399,788,1402,710],{},"Client-side injection config (",[453,1400,1401],{},"console",[453,1403,1404],{},"transport",[1218,1406,1407,1411,1415,1417],{},[1239,1408,1409],{},[453,1410,804],{},[1239,1412,1413],{},[453,1414,1392],{},[1239,1416,1395],{},[1239,1418,1419],{},"Head\u002Ftail sampling rates",[479,1421,1423],{"id":1422},"nuxt-integration","Nuxt Integration",[449,1425,1426,1427,473,1429,1431,1432,652],{},"The Nuxt module exposes ",[453,1428,472],{},[453,1430,476],{}," directly in ",[453,1433,1434],{},"nuxt.config.ts",[491,1436,1438],{"className":567,"code":1437,"filename":1434,"language":569,"meta":497,"style":497},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    env: { service: 'my-app' },\n    strip: ['debug'],           \u002F\u002F Default\n    sourceLocation: 'dev',      \u002F\u002F Inject in dev only\n  },\n})\n",[453,1439,1440,1453,1474,1483,1507,1530,1549,1553],{"__ignoreMap":497},[501,1441,1442,1444,1446,1449,1451],{"class":503,"line":504},[501,1443,630],{"class":576},[501,1445,633],{"class":576},[501,1447,1448],{"class":636}," defineNuxtConfig",[501,1450,639],{"class":584},[501,1452,642],{"class":580},[501,1454,1455,1458,1460,1463,1465,1467,1469,1472],{"class":503,"line":603},[501,1456,1457],{"class":648},"  modules",[501,1459,652],{"class":580},[501,1461,1462],{"class":584}," [",[501,1464,681],{"class":580},[501,1466,468],{"class":510},[501,1468,681],{"class":580},[501,1470,1471],{"class":584},"]",[501,1473,684],{"class":580},[501,1475,1476,1479,1481],{"class":503,"line":620},[501,1477,1478],{"class":648},"  evlog",[501,1480,652],{"class":580},[501,1482,1143],{"class":580},[501,1484,1485,1488,1490,1492,1495,1497,1499,1502,1504],{"class":503,"line":627},[501,1486,1487],{"class":648},"    env",[501,1489,652],{"class":580},[501,1491,581],{"class":580},[501,1493,1494],{"class":648}," service",[501,1496,652],{"class":580},[501,1498,594],{"class":580},[501,1500,1501],{"class":510},"my-app",[501,1503,681],{"class":580},[501,1505,1506],{"class":580}," },\n",[501,1508,1509,1512,1514,1516,1518,1521,1523,1525,1527],{"class":503,"line":645},[501,1510,1511],{"class":648},"    strip",[501,1513,652],{"class":580},[501,1515,1462],{"class":584},[501,1517,681],{"class":580},[501,1519,1520],{"class":510},"debug",[501,1522,681],{"class":580},[501,1524,1471],{"class":584},[501,1526,964],{"class":580},[501,1528,1529],{"class":862},"           \u002F\u002F Default\n",[501,1531,1532,1535,1537,1539,1542,1544,1546],{"class":503,"line":658},[501,1533,1534],{"class":648},"    sourceLocation",[501,1536,652],{"class":580},[501,1538,594],{"class":580},[501,1540,1541],{"class":510},"dev",[501,1543,681],{"class":580},[501,1545,964],{"class":580},[501,1547,1548],{"class":862},"      \u002F\u002F Inject in dev only\n",[501,1550,1551],{"class":503,"line":668},[501,1552,1201],{"class":580},[501,1554,1555,1557],{"class":503,"line":687},[501,1556,726],{"class":580},[501,1558,729],{"class":584},[479,1560,1562],{"id":1561},"vite-compatibility","Vite Compatibility",[449,1564,1565,1566,1569,1570,1573,1574,473,1577,1580],{},"The plugin supports ",[462,1567,1568],{},"Vite 7+"," and is optimized for ",[462,1571,1572],{},"Vite 8"," (Rolldown). On Vite 8, transform hooks use Rolldown-native ",[453,1575,1576],{},"filter",[453,1578,1579],{},"moduleType"," for maximum performance, non-matching files are skipped entirely on the Rust side without crossing the JS bridge.",[1582,1583,1584],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":497,"searchDepth":603,"depth":603,"links":1586},[1587,1592,1599,1600,1601],{"id":481,"depth":603,"text":25,"children":1588},[1589,1590],{"id":485,"depth":620,"text":486},{"id":560,"depth":620,"text":1591},"2. Add to vite.config.ts",{"id":753,"depth":603,"text":754,"children":1593},[1594,1595,1596,1597,1598],{"id":777,"depth":620,"text":778},{"id":821,"depth":620,"text":822},{"id":916,"depth":620,"text":917},{"id":984,"depth":620,"text":985},{"id":1087,"depth":620,"text":1088},{"id":1210,"depth":603,"text":418},{"id":1422,"depth":603,"text":1423},{"id":1561,"depth":603,"text":1562},"Build-time optimizations for any Vite-based framework. Auto-init, debug stripping, source location injection, and optional auto-imports.","md",[1605],{"label":1606,"icon":1607,"to":1608,"color":1609,"variant":1610},"Source Code","i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog\u002Ftree\u002Fmain\u002Fpackages\u002Fevlog\u002Fsrc\u002Fvite","neutral","subtle",{},{"icon":429},{"title":426,"description":1602},"RH8SMTFao2iXafsqVBSEvPGhU-5hkeu_P5j87aOivlc",[1616,1618],{"title":316,"path":423,"stem":424,"description":1617,"icon":319,"children":-1},"evlog adds ~3µs per request. Faster than pino, consola, and winston in most scenarios while emitting richer, more useful events.",{"title":431,"path":432,"stem":433,"description":1619,"icon":322,"children":-1},"Security guidelines, data sanitization, and production tips for evlog. Learn what not to log and how to protect sensitive data.",1780167568362]