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