[{"data":1,"prerenderedAt":1706},["ShallowReactive",2],{"navigation_docs":3,"-reference-vite-plugin":528,"-reference-vite-plugin-surround":1701},[4,29,76,122,304,435,496],{"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,431],{"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},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers",{"title":432,"path":433,"stem":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":436,"path":437,"stem":438,"children":439,"page":28},"Extend","\u002Fextend","6.extend",[440,444,449,454,458,463,467,471,476,481,486,491],{"title":128,"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":448},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":459,"path":460,"stem":461,"icon":462},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":464,"stem":465,"icon":466},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":468,"path":469,"stem":470},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":472,"path":473,"stem":474,"icon":475},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers","i-lucide-sparkles",{"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,"icon":495},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":424,"path":497,"stem":498,"children":499,"page":28},"\u002Freference","7.reference",[500,504,507,512,516,520,524],{"title":501,"path":502,"stem":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration",{"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},"evlog vs pino, winston, consola","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers",{"title":521,"path":522,"stem":523,"icon":475},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":525,"path":526,"stem":527},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":529,"title":508,"body":530,"description":1688,"extension":1689,"links":1690,"meta":1697,"navigation":1698,"path":509,"seo":1699,"stem":510,"__hash__":1700},"docs\u002F7.reference\u002F3.vite-plugin.md",{"type":531,"value":532,"toc":1671},"minimark",[533,542,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],[534,535,536,537,541],"p",{},"The ",[538,539,540],"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.",[543,544,547,551,552,555,556,559,560,563],"callout",{"color":545,"icon":546},"info","i-lucide-info",[548,549,550],"strong",{},"Nuxt users",": These features are already integrated into the ",[538,553,554],{},"evlog\u002Fnuxt"," module via ",[538,557,558],{},"strip"," and ",[538,561,562],{},"sourceLocation"," options. You don't need to install the Vite plugin separately.",[565,566,24],"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","",[538,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",[538,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",[538,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",[538,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 ",[538,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",[538,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,540],{"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",[534,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 ",[538,827,828],{},"initLogger()"," call needed)",[823,831,832,833,836],{},"Strips ",[538,834,835],{},"log.debug()"," calls from production builds",[565,838,840],{"id":839},"features","Features",[842,843],"vite-strip-build",{},[534,845,846,847,849,850,853,854,856,857,860],{},"The plugin transforms your source at build time: ",[538,848,835],{}," calls are deleted from the output, ",[538,851,852],{},"__source: 'file:line'"," is injected into object-form log calls, and ",[538,855,828],{}," is wired in via Vite's ",[538,858,859],{},"define"," hook so you never have to call it yourself.",[569,862,864],{"id":863},"auto-initialization","Auto-initialization",[534,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 ",[538,869,859],{}," hook. The ",[538,872,873],{},"service",", ",[538,876,877],{},"environment",[538,879,880],{},"pretty",[538,882,883],{},"silent",[538,885,886],{},"enabled",", and ",[538,889,890],{},"sampling"," options are serialized and injected at build time, so ",[538,893,894],{},"log",[538,896,897],{},"createLogger()",[538,899,900],{},"createRequestLogger()"," work immediately without an ",[538,903,828],{}," call.",[569,906,908],{"id":907},"debug-stripping","Debug stripping",[534,910,911,912,914],{},"By default, all ",[538,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",[538,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},[534,990,991,992,995,996,999],{},"Stripping only activates during ",[538,993,994],{},"vite build"," (not ",[538,997,998],{},"vite dev",").",[569,1001,1003],{"id":1002},"source-location-injection","Source location injection",[534,1005,1006,1007,1009],{},"When enabled, the plugin injects ",[538,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",[538,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)",[534,1073,1074,1075,874,1077,874,1080,1083],{},"Automatically detect and import evlog symbols (",[538,1076,894],{},[538,1078,1079],{},"createEvlogError",[538,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",[538,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},[534,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 ",[538,1141,663],{}," statements automatically",[823,1144,1145,1146,1149],{},"Generates a ",[538,1147,1148],{},".d.ts"," file for TypeScript support",[543,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 ",[538,1156,1079],{},", not ",[538,1159,1160],{},"createError",". This avoids conflicts with framework-native ",[538,1163,1160],{}," (Nuxt, Nitro, h3). The standalone ",[538,1166,1160],{}," from ",[538,1169,924],{}," is still available via explicit import.",[569,1172,1174],{"id":1173},"client-side-injection","Client-side injection",[534,1176,1177,1178,1181,1182,1185,1186,874,1189,1192],{},"When the ",[538,1179,1180],{},"client"," option is provided, the plugin injects a ",[538,1183,1184],{},"\u003Cscript>"," tag into HTML pages that initializes the client-side logger. This enables ",[538,1187,1188],{},"log.info()",[538,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",[538,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,501],{"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",{},[538,1328,873],{},[1325,1330,1331],{},[538,1332,1333],{},"string",[1325,1335,1336],{},[538,1337,1338],{},"'app'",[1325,1340,1341],{},"Service name in logs",[1304,1343,1344,1348,1352,1355],{},[1325,1345,1346],{},[538,1347,877],{},[1325,1349,1350],{},[538,1351,1333],{},[1325,1353,1354],{},"Auto-detected",[1325,1356,1357],{},"Environment name",[1304,1359,1360,1364,1369,1375],{},[1325,1361,1362],{},[538,1363,880],{},[1325,1365,1366],{},[538,1367,1368],{},"boolean",[1325,1370,1371,1374],{},[538,1372,1373],{},"true"," in dev",[1325,1376,1377],{},"Pretty print logs",[1304,1379,1380,1384,1388,1393],{},[1325,1381,1382],{},[538,1383,883],{},[1325,1385,1386],{},[538,1387,1368],{},[1325,1389,1390],{},[538,1391,1392],{},"false",[1325,1394,1395],{},"Suppress console output",[1304,1397,1398,1402,1406,1410],{},[1325,1399,1400],{},[538,1401,886],{},[1325,1403,1404],{},[538,1405,1368],{},[1325,1407,1408],{},[538,1409,1373],{},[1325,1411,1412],{},"Enable\u002Fdisable all logging",[1304,1414,1415,1419,1424,1429],{},[1325,1416,1417],{},[538,1418,558],{},[1325,1420,1421],{},[538,1422,1423],{},"LogLevel[]",[1325,1425,1426],{},[538,1427,1428],{},"['debug']",[1325,1430,1431],{},"Log levels to remove from production builds",[1304,1433,1434,1438,1443,1447],{},[1325,1435,1436],{},[538,1437,562],{},[1325,1439,1440],{},[538,1441,1442],{},"boolean | 'dev'",[1325,1444,1445],{},[538,1446,1392],{},[1325,1448,1449],{},"Inject source file:line into log calls",[1304,1451,1452,1457,1461,1465],{},[1325,1453,1454],{},[538,1455,1456],{},"autoImports",[1325,1458,1459],{},[538,1460,1368],{},[1325,1462,1463],{},[538,1464,1392],{},[1325,1466,1467],{},"Auto-import evlog symbols",[1304,1469,1470,1474,1479,1482],{},[1325,1471,1472],{},[538,1473,1180],{},[1325,1475,1476],{},[538,1477,1478],{},"object",[1325,1480,1481],{},"—",[1325,1483,1484,1485,874,1488,796],{},"Client-side injection config (",[538,1486,1487],{},"console",[538,1489,1490],{},"transport",[1304,1492,1493,1497,1501,1503],{},[1325,1494,1495],{},[538,1496,890],{},[1325,1498,1499],{},[538,1500,1478],{},[1325,1502,1481],{},[1325,1504,1505],{},"Head\u002Ftail sampling rates",[565,1507,1509],{"id":1508},"nuxt-integration","Nuxt Integration",[534,1511,1512,1513,559,1515,1517,1518,738],{},"The Nuxt module exposes ",[538,1514,558],{},[538,1516,562],{}," directly in ",[538,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",[538,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",[534,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 ",[538,1661,1662],{},"filter",[538,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":24,"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":501},{"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":511},{"title":508,"description":1688},"ob5-cGgS_iwxAhn47Cemm1RA4bVjveaObDjxuCCxB6M",[1702,1704],{"title":370,"path":505,"stem":506,"description":1703,"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":1705,"icon":376,"children":-1},"Security guidelines, data sanitization, and production tips for evlog. Learn what not to log and how to protect sensitive data.",1786793457300]