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