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