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