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