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