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