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