[{"data":1,"prerenderedAt":3374},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-nuxt":228,"-frameworks-nuxt-surround":3369},[4,30,110,149,198,214],{"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},"Frameworks","\u002Fframeworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100,105],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Fframeworks\u002Foverview","2.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","\u002Fframeworks\u002Fnuxt","2.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","\u002Fframeworks\u002Fnextjs","2.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","\u002Fframeworks\u002Fsveltekit","2.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","\u002Fframeworks\u002Fnitro","2.frameworks\u002F04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","2.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","\u002Fframeworks\u002Fnestjs","2.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","\u002Fframeworks\u002Fexpress","2.frameworks\u002F07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","\u002Fframeworks\u002Fhono","2.frameworks\u002F08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","\u002Fframeworks\u002Ffastify","2.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","\u002Fframeworks\u002Felysia","2.frameworks\u002F10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F11.cloudflare-workers","i-simple-icons-cloudflare",{"title":96,"path":97,"stem":98,"icon":99},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F12.standalone","i-simple-icons-typescript",{"title":101,"path":102,"stem":103,"icon":104},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F13.astro","i-simple-icons-astro",{"title":106,"path":107,"stem":108,"icon":109},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F14.custom-integration","i-lucide-puzzle",{"title":111,"path":112,"stem":113,"children":114,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[115,120,125,130,135,139,144],{"title":116,"path":117,"stem":118,"icon":119},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":121,"path":122,"stem":123,"icon":124},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":126,"path":127,"stem":128,"icon":129},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":131,"path":132,"stem":133,"icon":134},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":136,"path":137,"stem":138,"icon":99},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":140,"path":141,"stem":142,"icon":143},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":145,"path":146,"stem":147,"icon":148},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":150,"path":151,"stem":152,"children":153,"page":29},"Adapters","\u002Fadapters","4.adapters",[154,158,163,168,173,178,183,188,193],{"title":36,"path":155,"stem":156,"icon":157},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":159,"path":160,"stem":161,"icon":162},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":164,"path":165,"stem":166,"icon":167},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":169,"path":170,"stem":171,"icon":172},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":174,"path":175,"stem":176,"icon":177},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":179,"path":180,"stem":181,"icon":182},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":184,"path":185,"stem":186,"icon":187},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F7.custom","i-lucide-code",{"title":189,"path":190,"stem":191,"icon":192},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F8.pipeline","i-lucide-workflow",{"title":194,"path":195,"stem":196,"icon":197},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F9.browser","i-lucide-globe",{"title":199,"path":200,"stem":201,"children":202,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[203,206,210],{"title":36,"path":204,"stem":205,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":207,"path":208,"stem":209,"icon":109},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":211,"path":212,"stem":213,"icon":187},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":215,"path":216,"stem":217,"children":218,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[219,223],{"title":36,"path":220,"stem":221,"icon":222},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":224,"path":225,"stem":226,"icon":227},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":229,"title":41,"body":230,"description":3362,"extension":3363,"links":3364,"meta":3365,"navigation":3366,"path":42,"seo":3367,"stem":43,"__hash__":3368},"docs\u002F2.frameworks\u002F01.nuxt.md",{"type":231,"value":232,"toc":3335},"minimark",[233,250,254,259,330,334,450,460,463,470,825,828,906,910,925,1183,1199,1203,1213,1472,1476,1485,1617,1631,1635,1638,1805,1809,1812,1816,2054,2058,2265,2276,2279,2283,2286,2413,2416,2420,2423,2567,2571,2578,2731,2738,2742,2745,2838,2842,2872,2876,2882,2987,2991,2994,3127,3131,3138,3331],[234,235,236,237,241,242,245,246,249],"p",{},"evlog provides a first-class Nuxt module with auto-imported ",[238,239,240],"code",{},"useLogger",", ",[238,243,244],{},"createError",", and ",[238,247,248],{},"parseError",". Add it to your config and start logging — zero boilerplate.",[251,252,20],"h2",{"id":253},"quick-start",[255,256,258],"h3",{"id":257},"_1-install","1. Install",[260,261,262,287,302,316],"code-group",{},[263,264,270],"pre",{"className":265,"code":266,"filename":267,"language":268,"meta":269,"style":269},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[238,271,272],{"__ignoreMap":269},[273,274,277,280,284],"span",{"class":275,"line":276},"line",1,[273,278,267],{"class":279},"sBMFI",[273,281,283],{"class":282},"sfazB"," add",[273,285,286],{"class":282}," evlog\n",[263,288,291],{"className":265,"code":289,"filename":290,"language":268,"meta":269,"style":269},"npm install evlog\n","npm",[238,292,293],{"__ignoreMap":269},[273,294,295,297,300],{"class":275,"line":276},[273,296,290],{"class":279},[273,298,299],{"class":282}," install",[273,301,286],{"class":282},[263,303,306],{"className":265,"code":304,"filename":305,"language":268,"meta":269,"style":269},"yarn add evlog\n","yarn",[238,307,308],{"__ignoreMap":269},[273,309,310,312,314],{"class":275,"line":276},[273,311,305],{"class":279},[273,313,283],{"class":282},[273,315,286],{"class":282},[263,317,320],{"className":265,"code":318,"filename":319,"language":268,"meta":269,"style":269},"bun add evlog\n","bun",[238,321,322],{"__ignoreMap":269},[273,323,324,326,328],{"class":275,"line":276},[273,325,319],{"class":279},[273,327,283],{"class":282},[273,329,286],{"class":282},[255,331,333],{"id":332},"_2-add-the-module","2. Add the module",[263,335,340],{"className":336,"code":337,"filename":338,"language":339,"meta":269,"style":269},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    env: {\n      service: 'my-app',\n    },\n  },\n})\n","nuxt.config.ts","typescript",[238,341,342,363,390,401,411,429,435,441],{"__ignoreMap":269},[273,343,344,348,351,355,359],{"class":275,"line":276},[273,345,347],{"class":346},"s7zQu","export",[273,349,350],{"class":346}," default",[273,352,354],{"class":353},"s2Zo4"," defineNuxtConfig",[273,356,358],{"class":357},"sTEyZ","(",[273,360,362],{"class":361},"sMK4o","{\n",[273,364,366,370,373,376,379,382,384,387],{"class":275,"line":365},2,[273,367,369],{"class":368},"swJcz","  modules",[273,371,372],{"class":361},":",[273,374,375],{"class":357}," [",[273,377,378],{"class":361},"'",[273,380,381],{"class":282},"evlog\u002Fnuxt",[273,383,378],{"class":361},[273,385,386],{"class":357},"]",[273,388,389],{"class":361},",\n",[273,391,393,396,398],{"class":275,"line":392},3,[273,394,395],{"class":368},"  evlog",[273,397,372],{"class":361},[273,399,400],{"class":361}," {\n",[273,402,404,407,409],{"class":275,"line":403},4,[273,405,406],{"class":368},"    env",[273,408,372],{"class":361},[273,410,400],{"class":361},[273,412,414,417,419,422,425,427],{"class":275,"line":413},5,[273,415,416],{"class":368},"      service",[273,418,372],{"class":361},[273,420,421],{"class":361}," '",[273,423,424],{"class":282},"my-app",[273,426,378],{"class":361},[273,428,389],{"class":361},[273,430,432],{"class":275,"line":431},6,[273,433,434],{"class":361},"    },\n",[273,436,438],{"class":275,"line":437},7,[273,439,440],{"class":361},"  },\n",[273,442,444,447],{"class":275,"line":443},8,[273,445,446],{"class":361},"}",[273,448,449],{"class":357},")\n",[234,451,452,453,241,455,245,457,459],{},"That's it. ",[238,454,240],{},[238,456,244],{},[238,458,248],{}," are auto-imported.",[251,461,121],{"id":462},"wide-events",[234,464,465,466,469],{},"Build up context progressively throughout a request with ",[238,467,468],{},"useLogger(event)",". evlog emits a single wide event when the request completes.",[263,471,474],{"className":336,"code":472,"filename":473,"language":339,"meta":269,"style":269},"export default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const body = await readBody(event)\n\n  log.set({ user: { id: body.userId, plan: 'enterprise' } })\n\n  const cart = await db.findCart(body.cartId)\n  log.set({ cart: { items: cart.items.length, total: cart.total } })\n\n  const payment = await processPayment(cart)\n  log.set({ payment: { method: payment.method, cardLast4: payment.last4 } })\n\n  return { success: true, orderId: payment.orderId }\n})\n","server\u002Fapi\u002Fcheckout.post.ts",[238,475,476,506,526,547,553,611,615,646,701,706,728,779,784,818],{"__ignoreMap":269},[273,477,478,480,482,485,487,491,494,498,501,504],{"class":275,"line":276},[273,479,347],{"class":346},[273,481,350],{"class":346},[273,483,484],{"class":353}," defineEventHandler",[273,486,358],{"class":357},[273,488,490],{"class":489},"spNyl","async",[273,492,493],{"class":361}," (",[273,495,497],{"class":496},"sHdIc","event",[273,499,500],{"class":361},")",[273,502,503],{"class":489}," =>",[273,505,400],{"class":361},[273,507,508,511,514,517,520,522,524],{"class":275,"line":365},[273,509,510],{"class":489},"  const",[273,512,513],{"class":357}," log",[273,515,516],{"class":361}," =",[273,518,519],{"class":353}," useLogger",[273,521,358],{"class":368},[273,523,497],{"class":357},[273,525,449],{"class":368},[273,527,528,530,533,535,538,541,543,545],{"class":275,"line":392},[273,529,510],{"class":489},[273,531,532],{"class":357}," body",[273,534,516],{"class":361},[273,536,537],{"class":346}," await",[273,539,540],{"class":353}," readBody",[273,542,358],{"class":368},[273,544,497],{"class":357},[273,546,449],{"class":368},[273,548,549],{"class":275,"line":403},[273,550,552],{"emptyLinePlaceholder":551},true,"\n",[273,554,555,558,561,564,566,569,572,574,577,580,582,584,586,589,592,595,597,599,602,604,607,609],{"class":275,"line":413},[273,556,557],{"class":357},"  log",[273,559,560],{"class":361},".",[273,562,563],{"class":353},"set",[273,565,358],{"class":368},[273,567,568],{"class":361},"{",[273,570,571],{"class":368}," user",[273,573,372],{"class":361},[273,575,576],{"class":361}," {",[273,578,579],{"class":368}," id",[273,581,372],{"class":361},[273,583,532],{"class":357},[273,585,560],{"class":361},[273,587,588],{"class":357},"userId",[273,590,591],{"class":361},",",[273,593,594],{"class":368}," plan",[273,596,372],{"class":361},[273,598,421],{"class":361},[273,600,601],{"class":282},"enterprise",[273,603,378],{"class":361},[273,605,606],{"class":361}," }",[273,608,606],{"class":361},[273,610,449],{"class":368},[273,612,613],{"class":275,"line":431},[273,614,552],{"emptyLinePlaceholder":551},[273,616,617,619,622,624,626,629,631,634,636,639,641,644],{"class":275,"line":437},[273,618,510],{"class":489},[273,620,621],{"class":357}," cart",[273,623,516],{"class":361},[273,625,537],{"class":346},[273,627,628],{"class":357}," db",[273,630,560],{"class":361},[273,632,633],{"class":353},"findCart",[273,635,358],{"class":368},[273,637,638],{"class":357},"body",[273,640,560],{"class":361},[273,642,643],{"class":357},"cartId",[273,645,449],{"class":368},[273,647,648,650,652,654,656,658,660,662,664,667,669,671,673,676,678,681,683,686,688,690,692,695,697,699],{"class":275,"line":443},[273,649,557],{"class":357},[273,651,560],{"class":361},[273,653,563],{"class":353},[273,655,358],{"class":368},[273,657,568],{"class":361},[273,659,621],{"class":368},[273,661,372],{"class":361},[273,663,576],{"class":361},[273,665,666],{"class":368}," items",[273,668,372],{"class":361},[273,670,621],{"class":357},[273,672,560],{"class":361},[273,674,675],{"class":357},"items",[273,677,560],{"class":361},[273,679,680],{"class":357},"length",[273,682,591],{"class":361},[273,684,685],{"class":368}," total",[273,687,372],{"class":361},[273,689,621],{"class":357},[273,691,560],{"class":361},[273,693,694],{"class":357},"total",[273,696,606],{"class":361},[273,698,606],{"class":361},[273,700,449],{"class":368},[273,702,704],{"class":275,"line":703},9,[273,705,552],{"emptyLinePlaceholder":551},[273,707,709,711,714,716,718,721,723,726],{"class":275,"line":708},10,[273,710,510],{"class":489},[273,712,713],{"class":357}," payment",[273,715,516],{"class":361},[273,717,537],{"class":346},[273,719,720],{"class":353}," processPayment",[273,722,358],{"class":368},[273,724,725],{"class":357},"cart",[273,727,449],{"class":368},[273,729,731,733,735,737,739,741,743,745,747,750,752,754,756,759,761,764,766,768,770,773,775,777],{"class":275,"line":730},11,[273,732,557],{"class":357},[273,734,560],{"class":361},[273,736,563],{"class":353},[273,738,358],{"class":368},[273,740,568],{"class":361},[273,742,713],{"class":368},[273,744,372],{"class":361},[273,746,576],{"class":361},[273,748,749],{"class":368}," method",[273,751,372],{"class":361},[273,753,713],{"class":357},[273,755,560],{"class":361},[273,757,758],{"class":357},"method",[273,760,591],{"class":361},[273,762,763],{"class":368}," cardLast4",[273,765,372],{"class":361},[273,767,713],{"class":357},[273,769,560],{"class":361},[273,771,772],{"class":357},"last4",[273,774,606],{"class":361},[273,776,606],{"class":361},[273,778,449],{"class":368},[273,780,782],{"class":275,"line":781},12,[273,783,552],{"emptyLinePlaceholder":551},[273,785,787,790,792,795,797,801,803,806,808,810,812,815],{"class":275,"line":786},13,[273,788,789],{"class":346},"  return",[273,791,576],{"class":361},[273,793,794],{"class":368}," success",[273,796,372],{"class":361},[273,798,800],{"class":799},"sfNiH"," true",[273,802,591],{"class":361},[273,804,805],{"class":368}," orderId",[273,807,372],{"class":361},[273,809,713],{"class":357},[273,811,560],{"class":361},[273,813,814],{"class":357},"orderId",[273,816,817],{"class":361}," }\n",[273,819,821,823],{"class":275,"line":820},14,[273,822,446],{"class":361},[273,824,449],{"class":357},[234,826,827],{},"One request, one log line with all context:",[263,829,832],{"className":265,"code":830,"filename":831,"language":268,"meta":269,"style":269},"10:23:45 INFO [my-app] POST \u002Fapi\u002Fcheckout 200 in 145ms\n  ├─ user: id=usr_123 plan=enterprise\n  ├─ cart: items=3 total=14999\n  ├─ payment: method=card cardLast4=4242\n  └─ requestId: a1b2c3d4-...\n","Terminal output",[238,833,834,845,859,879,895],{"__ignoreMap":269},[273,835,836,839,842],{"class":275,"line":276},[273,837,838],{"class":279},"10:23:45",[273,840,841],{"class":282}," INFO",[273,843,844],{"class":357}," [my-app] POST \u002Fapi\u002Fcheckout 200 in 145ms\n",[273,846,847,850,853,856],{"class":275,"line":365},[273,848,849],{"class":279},"  ├─",[273,851,852],{"class":282}," user:",[273,854,855],{"class":282}," id=usr_123",[273,857,858],{"class":282}," plan=enterprise\n",[273,860,861,863,866,869,873,876],{"class":275,"line":392},[273,862,849],{"class":279},[273,864,865],{"class":282}," cart:",[273,867,868],{"class":282}," items=",[273,870,872],{"class":871},"sbssI","3",[273,874,875],{"class":282}," total=",[273,877,878],{"class":871},"14999\n",[273,880,881,883,886,889,892],{"class":275,"line":403},[273,882,849],{"class":279},[273,884,885],{"class":282}," payment:",[273,887,888],{"class":282}," method=card",[273,890,891],{"class":282}," cardLast4=",[273,893,894],{"class":871},"4242\n",[273,896,897,900,903],{"class":275,"line":413},[273,898,899],{"class":279},"  └─",[273,901,902],{"class":282}," requestId:",[273,904,905],{"class":282}," a1b2c3d4-...\n",[251,907,909],{"id":908},"error-handling","Error Handling",[234,911,912,914,915,241,918,245,921,924],{},[238,913,244],{}," produces structured errors with ",[238,916,917],{},"why",[238,919,920],{},"fix",[238,922,923],{},"link"," fields that help both humans and AI agents understand what went wrong.",[263,926,929],{"className":336,"code":927,"filename":928,"language":339,"meta":269,"style":269},"export default defineEventHandler(async (event) => {\n  const log = useLogger(event)\n  const body = await readBody(event)\n\n  log.set({ payment: { amount: body.amount } })\n\n  if (body.amount \u003C= 0) {\n    throw createError({\n      status: 400,\n      message: 'Invalid payment amount',\n      why: 'The amount must be a positive number',\n      fix: 'Pass a positive integer in cents (e.g. 4999 for $49.99)',\n      link: 'https:\u002F\u002Fdocs.example.com\u002Fapi\u002Fpayments#amount',\n    })\n  }\n\n  return { success: true }\n})\n","server\u002Fapi\u002Fpayment\u002Fprocess.post.ts",[238,930,931,953,969,987,991,1027,1031,1055,1067,1079,1095,1111,1127,1143,1150,1156,1161,1176],{"__ignoreMap":269},[273,932,933,935,937,939,941,943,945,947,949,951],{"class":275,"line":276},[273,934,347],{"class":346},[273,936,350],{"class":346},[273,938,484],{"class":353},[273,940,358],{"class":357},[273,942,490],{"class":489},[273,944,493],{"class":361},[273,946,497],{"class":496},[273,948,500],{"class":361},[273,950,503],{"class":489},[273,952,400],{"class":361},[273,954,955,957,959,961,963,965,967],{"class":275,"line":365},[273,956,510],{"class":489},[273,958,513],{"class":357},[273,960,516],{"class":361},[273,962,519],{"class":353},[273,964,358],{"class":368},[273,966,497],{"class":357},[273,968,449],{"class":368},[273,970,971,973,975,977,979,981,983,985],{"class":275,"line":392},[273,972,510],{"class":489},[273,974,532],{"class":357},[273,976,516],{"class":361},[273,978,537],{"class":346},[273,980,540],{"class":353},[273,982,358],{"class":368},[273,984,497],{"class":357},[273,986,449],{"class":368},[273,988,989],{"class":275,"line":403},[273,990,552],{"emptyLinePlaceholder":551},[273,992,993,995,997,999,1001,1003,1005,1007,1009,1012,1014,1016,1018,1021,1023,1025],{"class":275,"line":413},[273,994,557],{"class":357},[273,996,560],{"class":361},[273,998,563],{"class":353},[273,1000,358],{"class":368},[273,1002,568],{"class":361},[273,1004,713],{"class":368},[273,1006,372],{"class":361},[273,1008,576],{"class":361},[273,1010,1011],{"class":368}," amount",[273,1013,372],{"class":361},[273,1015,532],{"class":357},[273,1017,560],{"class":361},[273,1019,1020],{"class":357},"amount",[273,1022,606],{"class":361},[273,1024,606],{"class":361},[273,1026,449],{"class":368},[273,1028,1029],{"class":275,"line":431},[273,1030,552],{"emptyLinePlaceholder":551},[273,1032,1033,1036,1038,1040,1042,1044,1047,1050,1053],{"class":275,"line":437},[273,1034,1035],{"class":346},"  if",[273,1037,493],{"class":368},[273,1039,638],{"class":357},[273,1041,560],{"class":361},[273,1043,1020],{"class":357},[273,1045,1046],{"class":361}," \u003C=",[273,1048,1049],{"class":871}," 0",[273,1051,1052],{"class":368},") ",[273,1054,362],{"class":361},[273,1056,1057,1060,1063,1065],{"class":275,"line":443},[273,1058,1059],{"class":346},"    throw",[273,1061,1062],{"class":353}," createError",[273,1064,358],{"class":368},[273,1066,362],{"class":361},[273,1068,1069,1072,1074,1077],{"class":275,"line":703},[273,1070,1071],{"class":368},"      status",[273,1073,372],{"class":361},[273,1075,1076],{"class":871}," 400",[273,1078,389],{"class":361},[273,1080,1081,1084,1086,1088,1091,1093],{"class":275,"line":708},[273,1082,1083],{"class":368},"      message",[273,1085,372],{"class":361},[273,1087,421],{"class":361},[273,1089,1090],{"class":282},"Invalid payment amount",[273,1092,378],{"class":361},[273,1094,389],{"class":361},[273,1096,1097,1100,1102,1104,1107,1109],{"class":275,"line":730},[273,1098,1099],{"class":368},"      why",[273,1101,372],{"class":361},[273,1103,421],{"class":361},[273,1105,1106],{"class":282},"The amount must be a positive number",[273,1108,378],{"class":361},[273,1110,389],{"class":361},[273,1112,1113,1116,1118,1120,1123,1125],{"class":275,"line":781},[273,1114,1115],{"class":368},"      fix",[273,1117,372],{"class":361},[273,1119,421],{"class":361},[273,1121,1122],{"class":282},"Pass a positive integer in cents (e.g. 4999 for $49.99)",[273,1124,378],{"class":361},[273,1126,389],{"class":361},[273,1128,1129,1132,1134,1136,1139,1141],{"class":275,"line":786},[273,1130,1131],{"class":368},"      link",[273,1133,372],{"class":361},[273,1135,421],{"class":361},[273,1137,1138],{"class":282},"https:\u002F\u002Fdocs.example.com\u002Fapi\u002Fpayments#amount",[273,1140,378],{"class":361},[273,1142,389],{"class":361},[273,1144,1145,1148],{"class":275,"line":820},[273,1146,1147],{"class":361},"    }",[273,1149,449],{"class":368},[273,1151,1153],{"class":275,"line":1152},15,[273,1154,1155],{"class":361},"  }\n",[273,1157,1159],{"class":275,"line":1158},16,[273,1160,552],{"emptyLinePlaceholder":551},[273,1162,1164,1166,1168,1170,1172,1174],{"class":275,"line":1163},17,[273,1165,789],{"class":346},[273,1167,576],{"class":361},[273,1169,794],{"class":368},[273,1171,372],{"class":361},[273,1173,800],{"class":799},[273,1175,817],{"class":361},[273,1177,1179,1181],{"class":275,"line":1178},18,[273,1180,446],{"class":361},[273,1182,449],{"class":357},[1184,1185,1187,1188,1191,1192,241,1194,245,1196,1198],"callout",{"color":1186,"icon":13},"info","Nuxt's error handler automatically catches ",[238,1189,1190],{},"EvlogError"," and returns a structured JSON response with ",[238,1193,917],{},[238,1195,920],{},[238,1197,923],{}," fields.",[251,1200,1202],{"id":1201},"configuration","Configuration",[234,1204,1205,1206,1208,1209,1212],{},"All options are set in ",[238,1207,338],{}," under the ",[238,1210,1211],{},"evlog"," key:",[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,1263,1281,1301,1318,1341,1359,1378,1397,1416,1435,1453],"tbody",{},[1220,1239,1240,1246,1251,1256],{},[1241,1242,1243],"td",{},[238,1244,1245],{},"enabled",[1241,1247,1248],{},[238,1249,1250],{},"boolean",[1241,1252,1253],{},[238,1254,1255],{},"true",[1241,1257,1258,1259,1262],{},"Globally enable\u002Fdisable all logging. When ",[238,1260,1261],{},"false",", all operations become no-ops",[1220,1264,1265,1270,1274,1278],{},[1241,1266,1267],{},[238,1268,1269],{},"console",[1241,1271,1272],{},[238,1273,1250],{},[1241,1275,1276],{},[238,1277,1255],{},[1241,1279,1280],{},"Enable\u002Fdisable browser console output",[1220,1282,1283,1288,1293,1298],{},[1241,1284,1285],{},[238,1286,1287],{},"env.service",[1241,1289,1290],{},[238,1291,1292],{},"string",[1241,1294,1295],{},[238,1296,1297],{},"'app'",[1241,1299,1300],{},"Service name shown in logs",[1220,1302,1303,1308,1312,1315],{},[1241,1304,1305],{},[238,1306,1307],{},"env.environment",[1241,1309,1310],{},[238,1311,1292],{},[1241,1313,1314],{},"Auto-detected",[1241,1316,1317],{},"Environment name",[1220,1319,1320,1325,1330,1335],{},[1241,1321,1322],{},[238,1323,1324],{},"include",[1241,1326,1327],{},[238,1328,1329],{},"string[]",[1241,1331,1332],{},[238,1333,1334],{},"undefined",[1241,1336,1337,1338,500],{},"Route patterns to log. Supports glob (",[238,1339,1340],{},"\u002Fapi\u002F**",[1220,1342,1343,1348,1352,1356],{},[1241,1344,1345],{},[238,1346,1347],{},"exclude",[1241,1349,1350],{},[238,1351,1329],{},[1241,1353,1354],{},[238,1355,1334],{},[1241,1357,1358],{},"Route patterns to exclude. Exclusions take precedence",[1220,1360,1361,1366,1371,1375],{},[1241,1362,1363],{},[238,1364,1365],{},"routes",[1241,1367,1368],{},[238,1369,1370],{},"Record\u003Cstring, RouteConfig>",[1241,1372,1373],{},[238,1374,1334],{},[1241,1376,1377],{},"Route-specific service configuration",[1220,1379,1380,1385,1389,1394],{},[1241,1381,1382],{},[238,1383,1384],{},"pretty",[1241,1386,1387],{},[238,1388,1250],{},[1241,1390,1391,1393],{},[238,1392,1255],{}," in dev",[1241,1395,1396],{},"Pretty print with tree formatting",[1220,1398,1399,1404,1409,1413],{},[1241,1400,1401],{},[238,1402,1403],{},"sampling.rates",[1241,1405,1406],{},[238,1407,1408],{},"object",[1241,1410,1411],{},[238,1412,1334],{},[1241,1414,1415],{},"Head sampling rates per log level (0-100%)",[1220,1417,1418,1423,1428,1432],{},[1241,1419,1420],{},[238,1421,1422],{},"sampling.keep",[1241,1424,1425],{},[238,1426,1427],{},"array",[1241,1429,1430],{},[238,1431,1334],{},[1241,1433,1434],{},"Tail sampling conditions to force-keep logs",[1220,1436,1437,1442,1446,1450],{},[1241,1438,1439],{},[238,1440,1441],{},"transport.enabled",[1241,1443,1444],{},[238,1445,1250],{},[1241,1447,1448],{},[238,1449,1261],{},[1241,1451,1452],{},"Enable client-to-server log transport",[1220,1454,1455,1460,1464,1469],{},[1241,1456,1457],{},[238,1458,1459],{},"transport.endpoint",[1241,1461,1462],{},[238,1463,1292],{},[1241,1465,1466],{},[238,1467,1468],{},"'\u002Fapi\u002F_evlog\u002Fingest'",[1241,1470,1471],{},"Transport endpoint",[251,1473,1475],{"id":1474},"route-filtering","Route Filtering",[234,1477,1478,1479,1481,1482,1484],{},"Use ",[238,1480,1324],{}," and ",[238,1483,1347],{}," to control which routes are logged:",[263,1486,1488],{"className":336,"code":1487,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    include: ['\u002Fapi\u002F**', '\u002Fauth\u002F**'],\n    exclude: [\n      '\u002Fapi\u002F_nuxt_icon\u002F**',\n      '\u002Fapi\u002F_content\u002F**',\n      '\u002Fapi\u002Fhealth',\n    ],\n  },\n})\n",[238,1489,1490,1502,1520,1528,1556,1566,1578,1589,1600,1607,1611],{"__ignoreMap":269},[273,1491,1492,1494,1496,1498,1500],{"class":275,"line":276},[273,1493,347],{"class":346},[273,1495,350],{"class":346},[273,1497,354],{"class":353},[273,1499,358],{"class":357},[273,1501,362],{"class":361},[273,1503,1504,1506,1508,1510,1512,1514,1516,1518],{"class":275,"line":365},[273,1505,369],{"class":368},[273,1507,372],{"class":361},[273,1509,375],{"class":357},[273,1511,378],{"class":361},[273,1513,381],{"class":282},[273,1515,378],{"class":361},[273,1517,386],{"class":357},[273,1519,389],{"class":361},[273,1521,1522,1524,1526],{"class":275,"line":392},[273,1523,395],{"class":368},[273,1525,372],{"class":361},[273,1527,400],{"class":361},[273,1529,1530,1533,1535,1537,1539,1541,1543,1545,1547,1550,1552,1554],{"class":275,"line":403},[273,1531,1532],{"class":368},"    include",[273,1534,372],{"class":361},[273,1536,375],{"class":357},[273,1538,378],{"class":361},[273,1540,1340],{"class":282},[273,1542,378],{"class":361},[273,1544,591],{"class":361},[273,1546,421],{"class":361},[273,1548,1549],{"class":282},"\u002Fauth\u002F**",[273,1551,378],{"class":361},[273,1553,386],{"class":357},[273,1555,389],{"class":361},[273,1557,1558,1561,1563],{"class":275,"line":413},[273,1559,1560],{"class":368},"    exclude",[273,1562,372],{"class":361},[273,1564,1565],{"class":357}," [\n",[273,1567,1568,1571,1574,1576],{"class":275,"line":431},[273,1569,1570],{"class":361},"      '",[273,1572,1573],{"class":282},"\u002Fapi\u002F_nuxt_icon\u002F**",[273,1575,378],{"class":361},[273,1577,389],{"class":361},[273,1579,1580,1582,1585,1587],{"class":275,"line":437},[273,1581,1570],{"class":361},[273,1583,1584],{"class":282},"\u002Fapi\u002F_content\u002F**",[273,1586,378],{"class":361},[273,1588,389],{"class":361},[273,1590,1591,1593,1596,1598],{"class":275,"line":443},[273,1592,1570],{"class":361},[273,1594,1595],{"class":282},"\u002Fapi\u002Fhealth",[273,1597,378],{"class":361},[273,1599,389],{"class":361},[273,1601,1602,1605],{"class":275,"line":703},[273,1603,1604],{"class":357},"    ]",[273,1606,389],{"class":361},[273,1608,1609],{"class":275,"line":708},[273,1610,440],{"class":361},[273,1612,1613,1615],{"class":275,"line":730},[273,1614,446],{"class":361},[273,1616,449],{"class":357},[1184,1618,1621,1625,1626,1481,1628,1630],{"color":1619,"icon":1620},"warning","i-lucide-alert-triangle",[1622,1623,1624],"strong",{},"Exclusions take precedence."," If a path matches both ",[238,1627,1324],{},[238,1629,1347],{},", it will be excluded.",[255,1632,1634],{"id":1633},"route-based-service-names","Route-Based Service Names",[234,1636,1637],{},"Assign different service names to different route groups:",[263,1639,1641],{"className":336,"code":1640,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    env: { service: 'default-service' },\n    routes: {\n      '\u002Fapi\u002Fauth\u002F**': { service: 'auth-service' },\n      '\u002Fapi\u002Fpayment\u002F**': { service: 'payment-service' },\n      '\u002Fapi\u002Fbooking\u002F**': { service: 'booking-service' },\n    },\n  },\n})\n",[238,1642,1643,1655,1673,1681,1704,1713,1739,1765,1791,1795,1799],{"__ignoreMap":269},[273,1644,1645,1647,1649,1651,1653],{"class":275,"line":276},[273,1646,347],{"class":346},[273,1648,350],{"class":346},[273,1650,354],{"class":353},[273,1652,358],{"class":357},[273,1654,362],{"class":361},[273,1656,1657,1659,1661,1663,1665,1667,1669,1671],{"class":275,"line":365},[273,1658,369],{"class":368},[273,1660,372],{"class":361},[273,1662,375],{"class":357},[273,1664,378],{"class":361},[273,1666,381],{"class":282},[273,1668,378],{"class":361},[273,1670,386],{"class":357},[273,1672,389],{"class":361},[273,1674,1675,1677,1679],{"class":275,"line":392},[273,1676,395],{"class":368},[273,1678,372],{"class":361},[273,1680,400],{"class":361},[273,1682,1683,1685,1687,1689,1692,1694,1696,1699,1701],{"class":275,"line":403},[273,1684,406],{"class":368},[273,1686,372],{"class":361},[273,1688,576],{"class":361},[273,1690,1691],{"class":368}," service",[273,1693,372],{"class":361},[273,1695,421],{"class":361},[273,1697,1698],{"class":282},"default-service",[273,1700,378],{"class":361},[273,1702,1703],{"class":361}," },\n",[273,1705,1706,1709,1711],{"class":275,"line":413},[273,1707,1708],{"class":368},"    routes",[273,1710,372],{"class":361},[273,1712,400],{"class":361},[273,1714,1715,1717,1720,1722,1724,1726,1728,1730,1732,1735,1737],{"class":275,"line":431},[273,1716,1570],{"class":361},[273,1718,1719],{"class":368},"\u002Fapi\u002Fauth\u002F**",[273,1721,378],{"class":361},[273,1723,372],{"class":361},[273,1725,576],{"class":361},[273,1727,1691],{"class":368},[273,1729,372],{"class":361},[273,1731,421],{"class":361},[273,1733,1734],{"class":282},"auth-service",[273,1736,378],{"class":361},[273,1738,1703],{"class":361},[273,1740,1741,1743,1746,1748,1750,1752,1754,1756,1758,1761,1763],{"class":275,"line":437},[273,1742,1570],{"class":361},[273,1744,1745],{"class":368},"\u002Fapi\u002Fpayment\u002F**",[273,1747,378],{"class":361},[273,1749,372],{"class":361},[273,1751,576],{"class":361},[273,1753,1691],{"class":368},[273,1755,372],{"class":361},[273,1757,421],{"class":361},[273,1759,1760],{"class":282},"payment-service",[273,1762,378],{"class":361},[273,1764,1703],{"class":361},[273,1766,1767,1769,1772,1774,1776,1778,1780,1782,1784,1787,1789],{"class":275,"line":443},[273,1768,1570],{"class":361},[273,1770,1771],{"class":368},"\u002Fapi\u002Fbooking\u002F**",[273,1773,378],{"class":361},[273,1775,372],{"class":361},[273,1777,576],{"class":361},[273,1779,1691],{"class":368},[273,1781,372],{"class":361},[273,1783,421],{"class":361},[273,1785,1786],{"class":282},"booking-service",[273,1788,378],{"class":361},[273,1790,1703],{"class":361},[273,1792,1793],{"class":275,"line":703},[273,1794,434],{"class":361},[273,1796,1797],{"class":275,"line":708},[273,1798,440],{"class":361},[273,1800,1801,1803],{"class":275,"line":730},[273,1802,446],{"class":361},[273,1804,449],{"class":357},[251,1806,1808],{"id":1807},"drain-enrichers","Drain & Enrichers",[234,1810,1811],{},"Use Nitro plugin hooks to send logs to external services and enrich them with additional context.",[255,1813,1815],{"id":1814},"drain-plugin","Drain Plugin",[263,1817,1820],{"className":336,"code":1818,"filename":1819,"language":339,"meta":269,"style":269},"import type { DrainContext } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\nimport { createDrainPipeline } from 'evlog\u002Fpipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n  retry: { maxAttempts: 3 },\n})\nconst drain = pipeline(createAxiomDrain())\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', drain)\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[238,1821,1822,1847,1867,1887,1891,1917,1946,1965,1971,1991,1995,2017,2048],{"__ignoreMap":269},[273,1823,1824,1827,1830,1832,1835,1837,1840,1842,1844],{"class":275,"line":276},[273,1825,1826],{"class":346},"import",[273,1828,1829],{"class":346}," type",[273,1831,576],{"class":361},[273,1833,1834],{"class":357}," DrainContext",[273,1836,606],{"class":361},[273,1838,1839],{"class":346}," from",[273,1841,421],{"class":361},[273,1843,1211],{"class":282},[273,1845,1846],{"class":361},"'\n",[273,1848,1849,1851,1853,1856,1858,1860,1862,1865],{"class":275,"line":365},[273,1850,1826],{"class":346},[273,1852,576],{"class":361},[273,1854,1855],{"class":357}," createAxiomDrain",[273,1857,606],{"class":361},[273,1859,1839],{"class":346},[273,1861,421],{"class":361},[273,1863,1864],{"class":282},"evlog\u002Faxiom",[273,1866,1846],{"class":361},[273,1868,1869,1871,1873,1876,1878,1880,1882,1885],{"class":275,"line":392},[273,1870,1826],{"class":346},[273,1872,576],{"class":361},[273,1874,1875],{"class":357}," createDrainPipeline",[273,1877,606],{"class":361},[273,1879,1839],{"class":346},[273,1881,421],{"class":361},[273,1883,1884],{"class":282},"evlog\u002Fpipeline",[273,1886,1846],{"class":361},[273,1888,1889],{"class":275,"line":403},[273,1890,552],{"emptyLinePlaceholder":551},[273,1892,1893,1896,1899,1902,1904,1907,1910,1913,1915],{"class":275,"line":413},[273,1894,1895],{"class":489},"const",[273,1897,1898],{"class":357}," pipeline ",[273,1900,1901],{"class":361},"=",[273,1903,1875],{"class":353},[273,1905,1906],{"class":361},"\u003C",[273,1908,1909],{"class":279},"DrainContext",[273,1911,1912],{"class":361},">",[273,1914,358],{"class":357},[273,1916,362],{"class":361},[273,1918,1919,1922,1924,1926,1929,1931,1934,1936,1939,1941,1944],{"class":275,"line":431},[273,1920,1921],{"class":368},"  batch",[273,1923,372],{"class":361},[273,1925,576],{"class":361},[273,1927,1928],{"class":368}," size",[273,1930,372],{"class":361},[273,1932,1933],{"class":871}," 50",[273,1935,591],{"class":361},[273,1937,1938],{"class":368}," intervalMs",[273,1940,372],{"class":361},[273,1942,1943],{"class":871}," 5000",[273,1945,1703],{"class":361},[273,1947,1948,1951,1953,1955,1958,1960,1963],{"class":275,"line":437},[273,1949,1950],{"class":368},"  retry",[273,1952,372],{"class":361},[273,1954,576],{"class":361},[273,1956,1957],{"class":368}," maxAttempts",[273,1959,372],{"class":361},[273,1961,1962],{"class":871}," 3",[273,1964,1703],{"class":361},[273,1966,1967,1969],{"class":275,"line":443},[273,1968,446],{"class":361},[273,1970,449],{"class":357},[273,1972,1973,1975,1978,1980,1983,1985,1988],{"class":275,"line":703},[273,1974,1895],{"class":489},[273,1976,1977],{"class":357}," drain ",[273,1979,1901],{"class":361},[273,1981,1982],{"class":353}," pipeline",[273,1984,358],{"class":357},[273,1986,1987],{"class":353},"createAxiomDrain",[273,1989,1990],{"class":357},"())\n",[273,1992,1993],{"class":275,"line":708},[273,1994,552],{"emptyLinePlaceholder":551},[273,1996,1997,1999,2001,2004,2006,2008,2011,2013,2015],{"class":275,"line":730},[273,1998,347],{"class":346},[273,2000,350],{"class":346},[273,2002,2003],{"class":353}," defineNitroPlugin",[273,2005,358],{"class":357},[273,2007,358],{"class":361},[273,2009,2010],{"class":496},"nitroApp",[273,2012,500],{"class":361},[273,2014,503],{"class":489},[273,2016,400],{"class":361},[273,2018,2019,2022,2024,2027,2029,2032,2034,2036,2039,2041,2043,2046],{"class":275,"line":781},[273,2020,2021],{"class":357},"  nitroApp",[273,2023,560],{"class":361},[273,2025,2026],{"class":357},"hooks",[273,2028,560],{"class":361},[273,2030,2031],{"class":353},"hook",[273,2033,358],{"class":368},[273,2035,378],{"class":361},[273,2037,2038],{"class":282},"evlog:drain",[273,2040,378],{"class":361},[273,2042,591],{"class":361},[273,2044,2045],{"class":357}," drain",[273,2047,449],{"class":368},[273,2049,2050,2052],{"class":275,"line":786},[273,2051,446],{"class":361},[273,2053,449],{"class":357},[255,2055,2057],{"id":2056},"enricher-plugin","Enricher Plugin",[263,2059,2062],{"className":336,"code":2060,"filename":2061,"language":339,"meta":269,"style":269},"import {\n  createUserAgentEnricher,\n  createGeoEnricher,\n  createRequestSizeEnricher,\n  createTraceContextEnricher,\n} from 'evlog\u002Fenrichers'\n\nconst enrichers = [\n  createUserAgentEnricher(),\n  createGeoEnricher(),\n  createRequestSizeEnricher(),\n  createTraceContextEnricher(),\n]\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    for (const enricher of enrichers) enricher(ctx)\n  })\n})\n","server\u002Fplugins\u002Fevlog-enrich.ts",[238,2063,2064,2070,2077,2084,2091,2098,2111,2115,2126,2135,2143,2151,2159,2164,2168,2188,2222,2251,2258],{"__ignoreMap":269},[273,2065,2066,2068],{"class":275,"line":276},[273,2067,1826],{"class":346},[273,2069,400],{"class":361},[273,2071,2072,2075],{"class":275,"line":365},[273,2073,2074],{"class":357},"  createUserAgentEnricher",[273,2076,389],{"class":361},[273,2078,2079,2082],{"class":275,"line":392},[273,2080,2081],{"class":357},"  createGeoEnricher",[273,2083,389],{"class":361},[273,2085,2086,2089],{"class":275,"line":403},[273,2087,2088],{"class":357},"  createRequestSizeEnricher",[273,2090,389],{"class":361},[273,2092,2093,2096],{"class":275,"line":413},[273,2094,2095],{"class":357},"  createTraceContextEnricher",[273,2097,389],{"class":361},[273,2099,2100,2102,2104,2106,2109],{"class":275,"line":431},[273,2101,446],{"class":361},[273,2103,1839],{"class":346},[273,2105,421],{"class":361},[273,2107,2108],{"class":282},"evlog\u002Fenrichers",[273,2110,1846],{"class":361},[273,2112,2113],{"class":275,"line":437},[273,2114,552],{"emptyLinePlaceholder":551},[273,2116,2117,2119,2122,2124],{"class":275,"line":443},[273,2118,1895],{"class":489},[273,2120,2121],{"class":357}," enrichers ",[273,2123,1901],{"class":361},[273,2125,1565],{"class":357},[273,2127,2128,2130,2133],{"class":275,"line":703},[273,2129,2074],{"class":353},[273,2131,2132],{"class":357},"()",[273,2134,389],{"class":361},[273,2136,2137,2139,2141],{"class":275,"line":708},[273,2138,2081],{"class":353},[273,2140,2132],{"class":357},[273,2142,389],{"class":361},[273,2144,2145,2147,2149],{"class":275,"line":730},[273,2146,2088],{"class":353},[273,2148,2132],{"class":357},[273,2150,389],{"class":361},[273,2152,2153,2155,2157],{"class":275,"line":781},[273,2154,2095],{"class":353},[273,2156,2132],{"class":357},[273,2158,389],{"class":361},[273,2160,2161],{"class":275,"line":786},[273,2162,2163],{"class":357},"]\n",[273,2165,2166],{"class":275,"line":820},[273,2167,552],{"emptyLinePlaceholder":551},[273,2169,2170,2172,2174,2176,2178,2180,2182,2184,2186],{"class":275,"line":1152},[273,2171,347],{"class":346},[273,2173,350],{"class":346},[273,2175,2003],{"class":353},[273,2177,358],{"class":357},[273,2179,358],{"class":361},[273,2181,2010],{"class":496},[273,2183,500],{"class":361},[273,2185,503],{"class":489},[273,2187,400],{"class":361},[273,2189,2190,2192,2194,2196,2198,2200,2202,2204,2207,2209,2211,2213,2216,2218,2220],{"class":275,"line":1158},[273,2191,2021],{"class":357},[273,2193,560],{"class":361},[273,2195,2026],{"class":357},[273,2197,560],{"class":361},[273,2199,2031],{"class":353},[273,2201,358],{"class":368},[273,2203,378],{"class":361},[273,2205,2206],{"class":282},"evlog:enrich",[273,2208,378],{"class":361},[273,2210,591],{"class":361},[273,2212,493],{"class":361},[273,2214,2215],{"class":496},"ctx",[273,2217,500],{"class":361},[273,2219,503],{"class":489},[273,2221,400],{"class":361},[273,2223,2224,2227,2229,2231,2234,2237,2240,2242,2245,2247,2249],{"class":275,"line":1163},[273,2225,2226],{"class":346},"    for",[273,2228,493],{"class":368},[273,2230,1895],{"class":489},[273,2232,2233],{"class":357}," enricher",[273,2235,2236],{"class":361}," of",[273,2238,2239],{"class":357}," enrichers",[273,2241,1052],{"class":368},[273,2243,2244],{"class":353},"enricher",[273,2246,358],{"class":368},[273,2248,2215],{"class":357},[273,2250,449],{"class":368},[273,2252,2253,2256],{"class":275,"line":1178},[273,2254,2255],{"class":361},"  }",[273,2257,449],{"class":368},[273,2259,2261,2263],{"class":275,"line":2260},19,[273,2262,446],{"class":361},[273,2264,449],{"class":357},[1184,2266,2269,2270,1481,2273,2275],{"color":2267,"icon":2268},"neutral","i-lucide-arrow-right","See the ",[2271,2272,150],"a",{"href":155},[2271,2274,199],{"href":204}," docs for the full list of available drains and enrichers.",[251,2277,140],{"id":2278},"sampling",[255,2280,2282],{"id":2281},"head-sampling","Head Sampling",[234,2284,2285],{},"Randomly keep a percentage of logs per level. Runs before the request completes.",[263,2287,2289],{"className":336,"code":2288,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    sampling: {\n      rates: {\n        info: 10,\n        warn: 50,\n        debug: 5,\n        error: 100,\n      },\n    },\n  },\n})\n",[238,2290,2291,2303,2321,2329,2338,2347,2359,2370,2382,2394,2399,2403,2407],{"__ignoreMap":269},[273,2292,2293,2295,2297,2299,2301],{"class":275,"line":276},[273,2294,347],{"class":346},[273,2296,350],{"class":346},[273,2298,354],{"class":353},[273,2300,358],{"class":357},[273,2302,362],{"class":361},[273,2304,2305,2307,2309,2311,2313,2315,2317,2319],{"class":275,"line":365},[273,2306,369],{"class":368},[273,2308,372],{"class":361},[273,2310,375],{"class":357},[273,2312,378],{"class":361},[273,2314,381],{"class":282},[273,2316,378],{"class":361},[273,2318,386],{"class":357},[273,2320,389],{"class":361},[273,2322,2323,2325,2327],{"class":275,"line":392},[273,2324,395],{"class":368},[273,2326,372],{"class":361},[273,2328,400],{"class":361},[273,2330,2331,2334,2336],{"class":275,"line":403},[273,2332,2333],{"class":368},"    sampling",[273,2335,372],{"class":361},[273,2337,400],{"class":361},[273,2339,2340,2343,2345],{"class":275,"line":413},[273,2341,2342],{"class":368},"      rates",[273,2344,372],{"class":361},[273,2346,400],{"class":361},[273,2348,2349,2352,2354,2357],{"class":275,"line":431},[273,2350,2351],{"class":368},"        info",[273,2353,372],{"class":361},[273,2355,2356],{"class":871}," 10",[273,2358,389],{"class":361},[273,2360,2361,2364,2366,2368],{"class":275,"line":437},[273,2362,2363],{"class":368},"        warn",[273,2365,372],{"class":361},[273,2367,1933],{"class":871},[273,2369,389],{"class":361},[273,2371,2372,2375,2377,2380],{"class":275,"line":443},[273,2373,2374],{"class":368},"        debug",[273,2376,372],{"class":361},[273,2378,2379],{"class":871}," 5",[273,2381,389],{"class":361},[273,2383,2384,2387,2389,2392],{"class":275,"line":703},[273,2385,2386],{"class":368},"        error",[273,2388,372],{"class":361},[273,2390,2391],{"class":871}," 100",[273,2393,389],{"class":361},[273,2395,2396],{"class":275,"line":708},[273,2397,2398],{"class":361},"      },\n",[273,2400,2401],{"class":275,"line":730},[273,2402,434],{"class":361},[273,2404,2405],{"class":275,"line":781},[273,2406,440],{"class":361},[273,2408,2409,2411],{"class":275,"line":786},[273,2410,446],{"class":361},[273,2412,449],{"class":357},[234,2414,2415],{},"Each level is a percentage from 0 to 100. Levels you don't configure default to 100% (keep everything). Error defaults to 100% even when other levels are configured.",[255,2417,2419],{"id":2418},"tail-sampling","Tail Sampling",[234,2421,2422],{},"Evaluate after the request completes and force-keep logs that match specific conditions, regardless of head sampling.",[263,2424,2426],{"className":336,"code":2425,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    sampling: {\n      rates: { info: 10 },\n      keep: [\n        { duration: 1000 },\n        { status: 400 },\n        { path: '\u002Fapi\u002Fcritical\u002F**' },\n      ],\n    },\n  },\n})\n",[238,2427,2428,2440,2458,2466,2474,2491,2500,2515,2528,2546,2553,2557,2561],{"__ignoreMap":269},[273,2429,2430,2432,2434,2436,2438],{"class":275,"line":276},[273,2431,347],{"class":346},[273,2433,350],{"class":346},[273,2435,354],{"class":353},[273,2437,358],{"class":357},[273,2439,362],{"class":361},[273,2441,2442,2444,2446,2448,2450,2452,2454,2456],{"class":275,"line":365},[273,2443,369],{"class":368},[273,2445,372],{"class":361},[273,2447,375],{"class":357},[273,2449,378],{"class":361},[273,2451,381],{"class":282},[273,2453,378],{"class":361},[273,2455,386],{"class":357},[273,2457,389],{"class":361},[273,2459,2460,2462,2464],{"class":275,"line":392},[273,2461,395],{"class":368},[273,2463,372],{"class":361},[273,2465,400],{"class":361},[273,2467,2468,2470,2472],{"class":275,"line":403},[273,2469,2333],{"class":368},[273,2471,372],{"class":361},[273,2473,400],{"class":361},[273,2475,2476,2478,2480,2482,2485,2487,2489],{"class":275,"line":413},[273,2477,2342],{"class":368},[273,2479,372],{"class":361},[273,2481,576],{"class":361},[273,2483,2484],{"class":368}," info",[273,2486,372],{"class":361},[273,2488,2356],{"class":871},[273,2490,1703],{"class":361},[273,2492,2493,2496,2498],{"class":275,"line":431},[273,2494,2495],{"class":368},"      keep",[273,2497,372],{"class":361},[273,2499,1565],{"class":357},[273,2501,2502,2505,2508,2510,2513],{"class":275,"line":437},[273,2503,2504],{"class":361},"        {",[273,2506,2507],{"class":368}," duration",[273,2509,372],{"class":361},[273,2511,2512],{"class":871}," 1000",[273,2514,1703],{"class":361},[273,2516,2517,2519,2522,2524,2526],{"class":275,"line":443},[273,2518,2504],{"class":361},[273,2520,2521],{"class":368}," status",[273,2523,372],{"class":361},[273,2525,1076],{"class":871},[273,2527,1703],{"class":361},[273,2529,2530,2532,2535,2537,2539,2542,2544],{"class":275,"line":703},[273,2531,2504],{"class":361},[273,2533,2534],{"class":368}," path",[273,2536,372],{"class":361},[273,2538,421],{"class":361},[273,2540,2541],{"class":282},"\u002Fapi\u002Fcritical\u002F**",[273,2543,378],{"class":361},[273,2545,1703],{"class":361},[273,2547,2548,2551],{"class":275,"line":708},[273,2549,2550],{"class":357},"      ]",[273,2552,389],{"class":361},[273,2554,2555],{"class":275,"line":730},[273,2556,434],{"class":361},[273,2558,2559],{"class":275,"line":781},[273,2560,440],{"class":361},[273,2562,2563,2565],{"class":275,"line":786},[273,2564,446],{"class":361},[273,2566,449],{"class":357},[255,2568,2570],{"id":2569},"custom-tail-sampling","Custom Tail Sampling",[234,2572,2573,2574,2577],{},"For conditions beyond status, duration, and path, use the ",[238,2575,2576],{},"evlog:emit:keep"," hook:",[263,2579,2582],{"className":336,"code":2580,"filename":2581,"language":339,"meta":269,"style":269},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:emit:keep', (ctx) => {\n    const user = ctx.context.user as { premium?: boolean } | undefined\n    if (user?.premium) {\n      ctx.shouldKeep = true\n    }\n  })\n})\n","server\u002Fplugins\u002Fevlog-sampling.ts",[238,2583,2584,2604,2636,2680,2699,2714,2719,2725],{"__ignoreMap":269},[273,2585,2586,2588,2590,2592,2594,2596,2598,2600,2602],{"class":275,"line":276},[273,2587,347],{"class":346},[273,2589,350],{"class":346},[273,2591,2003],{"class":353},[273,2593,358],{"class":357},[273,2595,358],{"class":361},[273,2597,2010],{"class":496},[273,2599,500],{"class":361},[273,2601,503],{"class":489},[273,2603,400],{"class":361},[273,2605,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634],{"class":275,"line":365},[273,2607,2021],{"class":357},[273,2609,560],{"class":361},[273,2611,2026],{"class":357},[273,2613,560],{"class":361},[273,2615,2031],{"class":353},[273,2617,358],{"class":368},[273,2619,378],{"class":361},[273,2621,2576],{"class":282},[273,2623,378],{"class":361},[273,2625,591],{"class":361},[273,2627,493],{"class":361},[273,2629,2215],{"class":496},[273,2631,500],{"class":361},[273,2633,503],{"class":489},[273,2635,400],{"class":361},[273,2637,2638,2641,2643,2645,2648,2650,2653,2655,2658,2661,2663,2666,2669,2672,2674,2677],{"class":275,"line":392},[273,2639,2640],{"class":489},"    const",[273,2642,571],{"class":357},[273,2644,516],{"class":361},[273,2646,2647],{"class":357}," ctx",[273,2649,560],{"class":361},[273,2651,2652],{"class":357},"context",[273,2654,560],{"class":361},[273,2656,2657],{"class":357},"user",[273,2659,2660],{"class":346}," as",[273,2662,576],{"class":361},[273,2664,2665],{"class":368}," premium",[273,2667,2668],{"class":361},"?:",[273,2670,2671],{"class":279}," boolean",[273,2673,606],{"class":361},[273,2675,2676],{"class":361}," |",[273,2678,2679],{"class":279}," undefined\n",[273,2681,2682,2685,2687,2689,2692,2695,2697],{"class":275,"line":403},[273,2683,2684],{"class":346},"    if",[273,2686,493],{"class":368},[273,2688,2657],{"class":357},[273,2690,2691],{"class":361},"?.",[273,2693,2694],{"class":357},"premium",[273,2696,1052],{"class":368},[273,2698,362],{"class":361},[273,2700,2701,2704,2706,2709,2711],{"class":275,"line":413},[273,2702,2703],{"class":357},"      ctx",[273,2705,560],{"class":361},[273,2707,2708],{"class":357},"shouldKeep",[273,2710,516],{"class":361},[273,2712,2713],{"class":799}," true\n",[273,2715,2716],{"class":275,"line":431},[273,2717,2718],{"class":361},"    }\n",[273,2720,2721,2723],{"class":275,"line":437},[273,2722,2255],{"class":361},[273,2724,449],{"class":368},[273,2726,2727,2729],{"class":275,"line":443},[273,2728,446],{"class":361},[273,2730,449],{"class":357},[1184,2732,2733,2734,2737],{"color":1186,"icon":13},"Errors are always kept by default. You have to explicitly set ",[238,2735,2736],{},"error: 0"," to drop them.",[251,2739,2741],{"id":2740},"client-transport","Client Transport",[234,2743,2744],{},"Send browser logs to your server for processing and draining alongside server-side events.",[263,2746,2748],{"className":336,"code":2747,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    transport: {\n      enabled: true,\n      endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n    },\n  },\n})\n",[238,2749,2750,2762,2780,2788,2797,2808,2824,2828,2832],{"__ignoreMap":269},[273,2751,2752,2754,2756,2758,2760],{"class":275,"line":276},[273,2753,347],{"class":346},[273,2755,350],{"class":346},[273,2757,354],{"class":353},[273,2759,358],{"class":357},[273,2761,362],{"class":361},[273,2763,2764,2766,2768,2770,2772,2774,2776,2778],{"class":275,"line":365},[273,2765,369],{"class":368},[273,2767,372],{"class":361},[273,2769,375],{"class":357},[273,2771,378],{"class":361},[273,2773,381],{"class":282},[273,2775,378],{"class":361},[273,2777,386],{"class":357},[273,2779,389],{"class":361},[273,2781,2782,2784,2786],{"class":275,"line":392},[273,2783,395],{"class":368},[273,2785,372],{"class":361},[273,2787,400],{"class":361},[273,2789,2790,2793,2795],{"class":275,"line":403},[273,2791,2792],{"class":368},"    transport",[273,2794,372],{"class":361},[273,2796,400],{"class":361},[273,2798,2799,2802,2804,2806],{"class":275,"line":413},[273,2800,2801],{"class":368},"      enabled",[273,2803,372],{"class":361},[273,2805,800],{"class":799},[273,2807,389],{"class":361},[273,2809,2810,2813,2815,2817,2820,2822],{"class":275,"line":431},[273,2811,2812],{"class":368},"      endpoint",[273,2814,372],{"class":361},[273,2816,421],{"class":361},[273,2818,2819],{"class":282},"\u002Fapi\u002F_evlog\u002Fingest",[273,2821,378],{"class":361},[273,2823,389],{"class":361},[273,2825,2826],{"class":275,"line":437},[273,2827,434],{"class":361},[273,2829,2830],{"class":275,"line":443},[273,2831,440],{"class":361},[273,2833,2834,2836],{"class":275,"line":703},[273,2835,446],{"class":361},[273,2837,449],{"class":357},[255,2839,2841],{"id":2840},"how-it-works","How It Works",[2843,2844,2845,2852,2858,2861,2869],"ol",{},[2846,2847,2848,2849],"li",{},"Client calls ",[238,2850,2851],{},"log.info({ action: 'click', button: 'submit' })",[2846,2853,2854,2855,2857],{},"Log is sent to ",[238,2856,2819],{}," via POST",[2846,2859,2860],{},"Server enriches with environment context",[2846,2862,2863,2865,2866],{},[238,2864,2038],{}," hook is called with ",[238,2867,2868],{},"source: 'client'",[2846,2870,2871],{},"External services receive the log",[255,2873,2875],{"id":2874},"client-identity","Client Identity",[234,2877,2878,2879,372],{},"Attach user context to every client log with ",[238,2880,2881],{},"setIdentity",[263,2883,2886],{"className":336,"code":2884,"filename":2885,"language":339,"meta":269,"style":269},"\u002F\u002F After login\nsetIdentity({ userId: 'usr_123', orgId: 'org_456' })\n\nlog.info({ action: 'checkout' })\n\u002F\u002F -> { userId: 'usr_123', orgId: 'org_456', action: 'checkout', ... }\n\n\u002F\u002F After logout\nclearIdentity()\n","Nuxt (auto-imported)",[238,2887,2888,2894,2932,2936,2965,2970,2974,2979],{"__ignoreMap":269},[273,2889,2890],{"class":275,"line":276},[273,2891,2893],{"class":2892},"sHwdD","\u002F\u002F After login\n",[273,2895,2896,2898,2900,2902,2905,2907,2909,2912,2914,2916,2919,2921,2923,2926,2928,2930],{"class":275,"line":365},[273,2897,2881],{"class":353},[273,2899,358],{"class":357},[273,2901,568],{"class":361},[273,2903,2904],{"class":368}," userId",[273,2906,372],{"class":361},[273,2908,421],{"class":361},[273,2910,2911],{"class":282},"usr_123",[273,2913,378],{"class":361},[273,2915,591],{"class":361},[273,2917,2918],{"class":368}," orgId",[273,2920,372],{"class":361},[273,2922,421],{"class":361},[273,2924,2925],{"class":282},"org_456",[273,2927,378],{"class":361},[273,2929,606],{"class":361},[273,2931,449],{"class":357},[273,2933,2934],{"class":275,"line":392},[273,2935,552],{"emptyLinePlaceholder":551},[273,2937,2938,2941,2943,2945,2947,2949,2952,2954,2956,2959,2961,2963],{"class":275,"line":403},[273,2939,2940],{"class":357},"log",[273,2942,560],{"class":361},[273,2944,1186],{"class":353},[273,2946,358],{"class":357},[273,2948,568],{"class":361},[273,2950,2951],{"class":368}," action",[273,2953,372],{"class":361},[273,2955,421],{"class":361},[273,2957,2958],{"class":282},"checkout",[273,2960,378],{"class":361},[273,2962,606],{"class":361},[273,2964,449],{"class":357},[273,2966,2967],{"class":275,"line":413},[273,2968,2969],{"class":2892},"\u002F\u002F -> { userId: 'usr_123', orgId: 'org_456', action: 'checkout', ... }\n",[273,2971,2972],{"class":275,"line":431},[273,2973,552],{"emptyLinePlaceholder":551},[273,2975,2976],{"class":275,"line":437},[273,2977,2978],{"class":2892},"\u002F\u002F After logout\n",[273,2980,2981,2984],{"class":275,"line":443},[273,2982,2983],{"class":353},"clearIdentity",[273,2985,2986],{"class":357},"()\n",[255,2988,2990],{"id":2989},"syncing-identity-with-auth","Syncing Identity with Auth",[234,2992,2993],{},"Use a route middleware to keep identity in sync with your auth state:",[263,2995,2998],{"className":336,"code":2996,"filename":2997,"language":339,"meta":269,"style":269},"export default defineNuxtRouteMiddleware(() => {\n  const { user } = useAuth()\n\n  if (user.value) {\n    setIdentity({ userId: user.value.id, email: user.value.email })\n  } else {\n    clearIdentity()\n  }\n})\n","middleware\u002Fidentity.global.ts",[238,2999,3000,3017,3034,3038,3055,3101,3110,3117,3121],{"__ignoreMap":269},[273,3001,3002,3004,3006,3009,3011,3013,3015],{"class":275,"line":276},[273,3003,347],{"class":346},[273,3005,350],{"class":346},[273,3007,3008],{"class":353}," defineNuxtRouteMiddleware",[273,3010,358],{"class":357},[273,3012,2132],{"class":361},[273,3014,503],{"class":489},[273,3016,400],{"class":361},[273,3018,3019,3021,3023,3025,3027,3029,3032],{"class":275,"line":365},[273,3020,510],{"class":489},[273,3022,576],{"class":361},[273,3024,571],{"class":357},[273,3026,606],{"class":361},[273,3028,516],{"class":361},[273,3030,3031],{"class":353}," useAuth",[273,3033,2986],{"class":368},[273,3035,3036],{"class":275,"line":392},[273,3037,552],{"emptyLinePlaceholder":551},[273,3039,3040,3042,3044,3046,3048,3051,3053],{"class":275,"line":403},[273,3041,1035],{"class":346},[273,3043,493],{"class":368},[273,3045,2657],{"class":357},[273,3047,560],{"class":361},[273,3049,3050],{"class":357},"value",[273,3052,1052],{"class":368},[273,3054,362],{"class":361},[273,3056,3057,3060,3062,3064,3066,3068,3070,3072,3074,3076,3079,3081,3084,3086,3088,3090,3092,3094,3097,3099],{"class":275,"line":413},[273,3058,3059],{"class":353},"    setIdentity",[273,3061,358],{"class":368},[273,3063,568],{"class":361},[273,3065,2904],{"class":368},[273,3067,372],{"class":361},[273,3069,571],{"class":357},[273,3071,560],{"class":361},[273,3073,3050],{"class":357},[273,3075,560],{"class":361},[273,3077,3078],{"class":357},"id",[273,3080,591],{"class":361},[273,3082,3083],{"class":368}," email",[273,3085,372],{"class":361},[273,3087,571],{"class":357},[273,3089,560],{"class":361},[273,3091,3050],{"class":357},[273,3093,560],{"class":361},[273,3095,3096],{"class":357},"email",[273,3098,606],{"class":361},[273,3100,449],{"class":368},[273,3102,3103,3105,3108],{"class":275,"line":431},[273,3104,2255],{"class":361},[273,3106,3107],{"class":346}," else",[273,3109,400],{"class":361},[273,3111,3112,3115],{"class":275,"line":437},[273,3113,3114],{"class":353},"    clearIdentity",[273,3116,2986],{"class":368},[273,3118,3119],{"class":275,"line":443},[273,3120,1155],{"class":361},[273,3122,3123,3125],{"class":275,"line":703},[273,3124,446],{"class":361},[273,3126,449],{"class":357},[251,3128,3130],{"id":3129},"production-tips","Production Tips",[234,3132,3133,3134,3137],{},"Use Nuxt's ",[238,3135,3136],{},"$production"," override to keep full logging in development while sampling and disabling console output in production:",[263,3139,3141],{"className":336,"code":3140,"filename":338,"language":339,"meta":269,"style":269},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    env: { service: 'my-app' },\n  },\n  $production: {\n    evlog: {\n      console: false,\n      sampling: {\n        rates: { info: 10, warn: 50, debug: 0 },\n        keep: [{ duration: 1000 }, { status: 400 }],\n      },\n    },\n  },\n})\n",[238,3142,3143,3155,3173,3181,3201,3205,3214,3223,3235,3244,3279,3313,3317,3321,3325],{"__ignoreMap":269},[273,3144,3145,3147,3149,3151,3153],{"class":275,"line":276},[273,3146,347],{"class":346},[273,3148,350],{"class":346},[273,3150,354],{"class":353},[273,3152,358],{"class":357},[273,3154,362],{"class":361},[273,3156,3157,3159,3161,3163,3165,3167,3169,3171],{"class":275,"line":365},[273,3158,369],{"class":368},[273,3160,372],{"class":361},[273,3162,375],{"class":357},[273,3164,378],{"class":361},[273,3166,381],{"class":282},[273,3168,378],{"class":361},[273,3170,386],{"class":357},[273,3172,389],{"class":361},[273,3174,3175,3177,3179],{"class":275,"line":392},[273,3176,395],{"class":368},[273,3178,372],{"class":361},[273,3180,400],{"class":361},[273,3182,3183,3185,3187,3189,3191,3193,3195,3197,3199],{"class":275,"line":403},[273,3184,406],{"class":368},[273,3186,372],{"class":361},[273,3188,576],{"class":361},[273,3190,1691],{"class":368},[273,3192,372],{"class":361},[273,3194,421],{"class":361},[273,3196,424],{"class":282},[273,3198,378],{"class":361},[273,3200,1703],{"class":361},[273,3202,3203],{"class":275,"line":413},[273,3204,440],{"class":361},[273,3206,3207,3210,3212],{"class":275,"line":431},[273,3208,3209],{"class":368},"  $production",[273,3211,372],{"class":361},[273,3213,400],{"class":361},[273,3215,3216,3219,3221],{"class":275,"line":437},[273,3217,3218],{"class":368},"    evlog",[273,3220,372],{"class":361},[273,3222,400],{"class":361},[273,3224,3225,3228,3230,3233],{"class":275,"line":443},[273,3226,3227],{"class":368},"      console",[273,3229,372],{"class":361},[273,3231,3232],{"class":799}," false",[273,3234,389],{"class":361},[273,3236,3237,3240,3242],{"class":275,"line":703},[273,3238,3239],{"class":368},"      sampling",[273,3241,372],{"class":361},[273,3243,400],{"class":361},[273,3245,3246,3249,3251,3253,3255,3257,3259,3261,3264,3266,3268,3270,3273,3275,3277],{"class":275,"line":708},[273,3247,3248],{"class":368},"        rates",[273,3250,372],{"class":361},[273,3252,576],{"class":361},[273,3254,2484],{"class":368},[273,3256,372],{"class":361},[273,3258,2356],{"class":871},[273,3260,591],{"class":361},[273,3262,3263],{"class":368}," warn",[273,3265,372],{"class":361},[273,3267,1933],{"class":871},[273,3269,591],{"class":361},[273,3271,3272],{"class":368}," debug",[273,3274,372],{"class":361},[273,3276,1049],{"class":871},[273,3278,1703],{"class":361},[273,3280,3281,3284,3286,3288,3290,3292,3294,3296,3299,3301,3303,3305,3307,3309,3311],{"class":275,"line":730},[273,3282,3283],{"class":368},"        keep",[273,3285,372],{"class":361},[273,3287,375],{"class":357},[273,3289,568],{"class":361},[273,3291,2507],{"class":368},[273,3293,372],{"class":361},[273,3295,2512],{"class":871},[273,3297,3298],{"class":361}," },",[273,3300,576],{"class":361},[273,3302,2521],{"class":368},[273,3304,372],{"class":361},[273,3306,1076],{"class":871},[273,3308,606],{"class":361},[273,3310,386],{"class":357},[273,3312,389],{"class":361},[273,3314,3315],{"class":275,"line":781},[273,3316,2398],{"class":361},[273,3318,3319],{"class":275,"line":786},[273,3320,434],{"class":361},[273,3322,3323],{"class":275,"line":820},[273,3324,440],{"class":361},[273,3326,3327,3329],{"class":275,"line":1152},[273,3328,446],{"class":361},[273,3330,449],{"class":357},[3332,3333,3334],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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}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}",{"title":269,"searchDepth":365,"depth":365,"links":3336},[3337,3341,3342,3343,3344,3347,3351,3356,3361],{"id":253,"depth":365,"text":20,"children":3338},[3339,3340],{"id":257,"depth":392,"text":258},{"id":332,"depth":392,"text":333},{"id":462,"depth":365,"text":121},{"id":908,"depth":365,"text":909},{"id":1201,"depth":365,"text":1202},{"id":1474,"depth":365,"text":1475,"children":3345},[3346],{"id":1633,"depth":392,"text":1634},{"id":1807,"depth":365,"text":1808,"children":3348},[3349,3350],{"id":1814,"depth":392,"text":1815},{"id":2056,"depth":392,"text":2057},{"id":2278,"depth":365,"text":140,"children":3352},[3353,3354,3355],{"id":2281,"depth":392,"text":2282},{"id":2418,"depth":392,"text":2419},{"id":2569,"depth":392,"text":2570},{"id":2740,"depth":365,"text":2741,"children":3357},[3358,3359,3360],{"id":2840,"depth":392,"text":2841},{"id":2874,"depth":392,"text":2875},{"id":2989,"depth":392,"text":2990},{"id":3129,"depth":365,"text":3130},"Using evlog with Nuxt — automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.","md",null,{},{"title":41,"icon":44},{"title":41,"description":3362},"RbTNxxpSu97eHLyT-EbD54SYQ-a3700WrvkaD9SqGE4",[3370,3372],{"title":36,"path":37,"stem":38,"description":3371,"icon":39,"children":-1},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.",{"title":46,"path":47,"stem":48,"description":3373,"icon":49,"children":-1},"Using evlog with Next.js — wide events, structured errors, drain pipeline, tail sampling, route-based services, error handling, and client-side logging.",1773428027243]