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