[{"data":1,"prerenderedAt":2134},["ShallowReactive",2],{"navigation_docs":3,"-logging-client-logging":276,"-logging-client-logging-surround":2129},[4,30,65,105,187,246,262],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Logging","\u002Flogging","2.logging",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":61,"path":62,"stem":63,"icon":64},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[70,75,80,85,90,95,100],{"title":71,"path":72,"stem":73,"icon":74},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":76,"path":77,"stem":78,"icon":79},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":81,"path":82,"stem":83,"icon":84},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":86,"path":87,"stem":88,"icon":89},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":91,"path":92,"stem":93,"icon":94},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices","i-lucide-shield-check",{"title":96,"path":97,"stem":98,"icon":99},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":101,"path":102,"stem":103,"icon":104},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Frameworks","\u002Fframeworks","4.frameworks",[110,114,119,124,129,134,139,144,149,154,159,164,168,173,177,182],{"title":36,"path":111,"stem":112,"icon":113},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":115,"path":116,"stem":117,"icon":118},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":120,"path":121,"stem":122,"icon":123},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":125,"path":126,"stem":127,"icon":128},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":130,"path":131,"stem":132,"icon":133},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":135,"path":136,"stem":137,"icon":138},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":140,"path":141,"stem":142,"icon":143},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":145,"path":146,"stem":147,"icon":148},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":150,"path":151,"stem":152,"icon":153},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":155,"path":156,"stem":157,"icon":158},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":160,"path":161,"stem":162,"icon":163},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":165,"path":166,"stem":167},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router",{"title":169,"path":170,"stem":171,"icon":172},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":174,"path":175,"stem":176,"icon":89},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":178,"path":179,"stem":180,"icon":181},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":183,"path":184,"stem":185,"icon":186},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":188,"path":189,"stem":190,"children":191,"page":29},"Adapters","\u002Fadapters","5.adapters",[192,196,201,206,211,216,221,226,231,236,241],{"title":36,"path":193,"stem":194,"icon":195},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":197,"path":198,"stem":199,"icon":200},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F10.pipeline","i-lucide-workflow",{"title":202,"path":203,"stem":204,"icon":205},"Browser","\u002Fadapters\u002Fbrowser","5.adapters\u002F11.browser","i-lucide-globe",{"title":207,"path":208,"stem":209,"icon":210},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":212,"path":213,"stem":214,"icon":215},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":217,"path":218,"stem":219,"icon":220},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":222,"path":223,"stem":224,"icon":225},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":227,"path":228,"stem":229,"icon":230},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":232,"path":233,"stem":234,"icon":235},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":237,"path":238,"stem":239,"icon":240},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F8.hyperdx","i-custom-hyperdx",{"title":242,"path":243,"stem":244,"icon":245},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F9.custom","i-lucide-code",{"title":247,"path":248,"stem":249,"children":250,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[251,254,258],{"title":36,"path":252,"stem":253,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":255,"path":256,"stem":257,"icon":186},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":259,"path":260,"stem":261,"icon":245},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":263,"path":264,"stem":265,"children":266,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[267,271],{"title":36,"path":268,"stem":269,"icon":270},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":272,"path":273,"stem":274,"icon":275},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":277,"title":56,"body":278,"description":2119,"extension":2120,"links":2121,"meta":2125,"navigation":2126,"path":57,"seo":2127,"stem":58,"__hash__":2128},"docs\u002F2.logging\u002F4.client-logging.md",{"type":279,"value":280,"toc":2104},"minimark",[281,285,289,292,791,797,801,806,811,817,878,936,940,943,977,993,997,1014,1018,1024,1159,1162,1165,1171,1265,1348,1361,1365,1368,1372,1386,1598,1607,1611,1614,2041,2044,2071,2079,2083,2100],[282,283,284],"p",{},"Server logs tell you what happened on the backend. Client logs complete the picture: user interactions, page views, frontend errors, and performance signals that never reach the server unless you capture them.",[286,287,20],"h2",{"id":288},"quick-start",[282,290,291],{},"evlog provides a client-side logging API that works in any browser environment:",[293,294,295,474,692],"code-group",{},[296,297,303],"pre",{"className":298,"code":299,"filename":300,"language":301,"meta":302,"style":302},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initLog, log } from 'evlog\u002Fclient'\n\nexport default defineNuxtPlugin(() => {\n  initLog({ service: 'web' })\n\n  log.info({ action: 'app_init', path: window.location.pathname })\n})\n","app\u002Fplugins\u002Flogger.client.ts (Nuxt)","typescript","",[304,305,306,345,352,378,409,414,466],"code",{"__ignoreMap":302},[307,308,311,315,319,323,326,329,332,335,338,342],"span",{"class":309,"line":310},"line",1,[307,312,314],{"class":313},"s7zQu","import",[307,316,318],{"class":317},"sMK4o"," {",[307,320,322],{"class":321},"sTEyZ"," initLog",[307,324,325],{"class":317},",",[307,327,328],{"class":321}," log",[307,330,331],{"class":317}," }",[307,333,334],{"class":313}," from",[307,336,337],{"class":317}," '",[307,339,341],{"class":340},"sfazB","evlog\u002Fclient",[307,343,344],{"class":317},"'\n",[307,346,348],{"class":309,"line":347},2,[307,349,351],{"emptyLinePlaceholder":350},true,"\n",[307,353,355,358,361,365,368,371,375],{"class":309,"line":354},3,[307,356,357],{"class":313},"export",[307,359,360],{"class":313}," default",[307,362,364],{"class":363},"s2Zo4"," defineNuxtPlugin",[307,366,367],{"class":321},"(",[307,369,370],{"class":317},"()",[307,372,374],{"class":373},"spNyl"," =>",[307,376,377],{"class":317}," {\n",[307,379,381,384,387,390,393,396,398,401,404,406],{"class":309,"line":380},4,[307,382,383],{"class":363},"  initLog",[307,385,367],{"class":386},"swJcz",[307,388,389],{"class":317},"{",[307,391,392],{"class":386}," service",[307,394,395],{"class":317},":",[307,397,337],{"class":317},[307,399,400],{"class":340},"web",[307,402,403],{"class":317},"'",[307,405,331],{"class":317},[307,407,408],{"class":386},")\n",[307,410,412],{"class":309,"line":411},5,[307,413,351],{"emptyLinePlaceholder":350},[307,415,417,420,423,426,428,430,433,435,437,440,442,444,447,449,452,454,457,459,462,464],{"class":309,"line":416},6,[307,418,419],{"class":321},"  log",[307,421,422],{"class":317},".",[307,424,425],{"class":363},"info",[307,427,367],{"class":386},[307,429,389],{"class":317},[307,431,432],{"class":386}," action",[307,434,395],{"class":317},[307,436,337],{"class":317},[307,438,439],{"class":340},"app_init",[307,441,403],{"class":317},[307,443,325],{"class":317},[307,445,446],{"class":386}," path",[307,448,395],{"class":317},[307,450,451],{"class":321}," window",[307,453,422],{"class":317},[307,455,456],{"class":321},"location",[307,458,422],{"class":317},[307,460,461],{"class":321},"pathname",[307,463,331],{"class":317},[307,465,408],{"class":386},[307,467,469,472],{"class":309,"line":468},7,[307,470,471],{"class":317},"}",[307,473,408],{"class":321},[296,475,478],{"className":298,"code":476,"filename":477,"language":301,"meta":302,"style":302},"'use client'\nimport { useEffect } from 'react'\nimport { initLog, log } from 'evlog\u002Fclient'\n\nexport function LogProvider({ children }: { children: React.ReactNode }) {\n  useEffect(() => {\n    initLog({ service: 'web' })\n    log.info({ action: 'app_init', path: window.location.pathname })\n  }, [])\n\n  return \u003C>{children}\u003C\u002F>\n}\n","app\u002Fproviders.tsx (React \u002F Next.js)",[304,479,480,489,509,531,535,575,588,611,655,664,669,686],{"__ignoreMap":302},[307,481,482,484,487],{"class":309,"line":310},[307,483,403],{"class":317},[307,485,486],{"class":340},"use client",[307,488,344],{"class":317},[307,490,491,493,495,498,500,502,504,507],{"class":309,"line":347},[307,492,314],{"class":313},[307,494,318],{"class":317},[307,496,497],{"class":321}," useEffect",[307,499,331],{"class":317},[307,501,334],{"class":313},[307,503,337],{"class":317},[307,505,506],{"class":340},"react",[307,508,344],{"class":317},[307,510,511,513,515,517,519,521,523,525,527,529],{"class":309,"line":354},[307,512,314],{"class":313},[307,514,318],{"class":317},[307,516,322],{"class":321},[307,518,325],{"class":317},[307,520,328],{"class":321},[307,522,331],{"class":317},[307,524,334],{"class":313},[307,526,337],{"class":317},[307,528,341],{"class":340},[307,530,344],{"class":317},[307,532,533],{"class":309,"line":380},[307,534,351],{"emptyLinePlaceholder":350},[307,536,537,539,542,545,548,552,555,557,559,561,565,567,570,573],{"class":309,"line":411},[307,538,357],{"class":313},[307,540,541],{"class":373}," function",[307,543,544],{"class":363}," LogProvider",[307,546,547],{"class":317},"({",[307,549,551],{"class":550},"sHdIc"," children",[307,553,554],{"class":317}," }:",[307,556,318],{"class":317},[307,558,551],{"class":386},[307,560,395],{"class":317},[307,562,564],{"class":563},"sBMFI"," React",[307,566,422],{"class":317},[307,568,569],{"class":563},"ReactNode",[307,571,572],{"class":317}," })",[307,574,377],{"class":317},[307,576,577,580,582,584,586],{"class":309,"line":416},[307,578,579],{"class":363},"  useEffect",[307,581,367],{"class":386},[307,583,370],{"class":317},[307,585,374],{"class":373},[307,587,377],{"class":317},[307,589,590,593,595,597,599,601,603,605,607,609],{"class":309,"line":468},[307,591,592],{"class":363},"    initLog",[307,594,367],{"class":386},[307,596,389],{"class":317},[307,598,392],{"class":386},[307,600,395],{"class":317},[307,602,337],{"class":317},[307,604,400],{"class":340},[307,606,403],{"class":317},[307,608,331],{"class":317},[307,610,408],{"class":386},[307,612,614,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653],{"class":309,"line":613},8,[307,615,616],{"class":321},"    log",[307,618,422],{"class":317},[307,620,425],{"class":363},[307,622,367],{"class":386},[307,624,389],{"class":317},[307,626,432],{"class":386},[307,628,395],{"class":317},[307,630,337],{"class":317},[307,632,439],{"class":340},[307,634,403],{"class":317},[307,636,325],{"class":317},[307,638,446],{"class":386},[307,640,395],{"class":317},[307,642,451],{"class":321},[307,644,422],{"class":317},[307,646,456],{"class":321},[307,648,422],{"class":317},[307,650,461],{"class":321},[307,652,331],{"class":317},[307,654,408],{"class":386},[307,656,658,661],{"class":309,"line":657},9,[307,659,660],{"class":317},"  },",[307,662,663],{"class":386}," [])\n",[307,665,667],{"class":309,"line":666},10,[307,668,351],{"emptyLinePlaceholder":350},[307,670,672,675,678,680,683],{"class":309,"line":671},11,[307,673,674],{"class":313},"  return",[307,676,677],{"class":386}," \u003C>",[307,679,389],{"class":317},[307,681,682],{"class":321},"children",[307,684,685],{"class":317},"}\u003C\u002F>\n",[307,687,689],{"class":309,"line":688},12,[307,690,691],{"class":317},"}\n",[296,693,696],{"className":298,"code":694,"filename":695,"language":301,"meta":302,"style":302},"import { initLog, log } from 'evlog\u002Fclient'\n\ninitLog({ service: 'web' })\nlog.info({ action: 'app_init', path: window.location.pathname })\n","src\u002Fapp.ts (Any frontend)",[304,697,698,720,724,747],{"__ignoreMap":302},[307,699,700,702,704,706,708,710,712,714,716,718],{"class":309,"line":310},[307,701,314],{"class":313},[307,703,318],{"class":317},[307,705,322],{"class":321},[307,707,325],{"class":317},[307,709,328],{"class":321},[307,711,331],{"class":317},[307,713,334],{"class":313},[307,715,337],{"class":317},[307,717,341],{"class":340},[307,719,344],{"class":317},[307,721,722],{"class":309,"line":347},[307,723,351],{"emptyLinePlaceholder":350},[307,725,726,729,731,733,735,737,739,741,743,745],{"class":309,"line":354},[307,727,728],{"class":363},"initLog",[307,730,367],{"class":321},[307,732,389],{"class":317},[307,734,392],{"class":386},[307,736,395],{"class":317},[307,738,337],{"class":317},[307,740,400],{"class":340},[307,742,403],{"class":317},[307,744,331],{"class":317},[307,746,408],{"class":321},[307,748,749,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,787,789],{"class":309,"line":380},[307,750,751],{"class":321},"log",[307,753,422],{"class":317},[307,755,425],{"class":363},[307,757,367],{"class":321},[307,759,389],{"class":317},[307,761,432],{"class":386},[307,763,395],{"class":317},[307,765,337],{"class":317},[307,767,439],{"class":340},[307,769,403],{"class":317},[307,771,325],{"class":317},[307,773,446],{"class":386},[307,775,395],{"class":317},[307,777,451],{"class":321},[307,779,422],{"class":317},[307,781,456],{"class":321},[307,783,422],{"class":317},[307,785,786],{"class":321},"pathname ",[307,788,471],{"class":317},[307,790,408],{"class":321},[282,792,793,794,796],{},"The ",[304,795,751],{}," object works anywhere in your client code: components, composables, event handlers.",[286,798,800],{"id":799},"two-call-signatures","Two Call Signatures",[282,802,793,803,805],{},[304,804,751],{}," API accepts two forms depending on the context.",[807,808,810],"h3",{"id":809},"object-form-structured-context","Object Form (structured context)",[282,812,813,814,395],{},"Pass an object to capture structured data, just like server-side ",[304,815,816],{},"log.set()",[296,818,821],{"className":298,"code":819,"filename":820,"language":301,"meta":302,"style":302},"log.info({ action: 'page_view', path: '\u002Fproducts', referrer: document.referrer })\n","pages\u002Fproducts.vue",[304,822,823],{"__ignoreMap":302},[307,824,825,827,829,831,833,835,837,839,841,844,846,848,850,852,854,857,859,861,864,866,869,871,874,876],{"class":309,"line":310},[307,826,751],{"class":321},[307,828,422],{"class":317},[307,830,425],{"class":363},[307,832,367],{"class":321},[307,834,389],{"class":317},[307,836,432],{"class":386},[307,838,395],{"class":317},[307,840,337],{"class":317},[307,842,843],{"class":340},"page_view",[307,845,403],{"class":317},[307,847,325],{"class":317},[307,849,446],{"class":386},[307,851,395],{"class":317},[307,853,337],{"class":317},[307,855,856],{"class":340},"\u002Fproducts",[307,858,403],{"class":317},[307,860,325],{"class":317},[307,862,863],{"class":386}," referrer",[307,865,395],{"class":317},[307,867,868],{"class":321}," document",[307,870,422],{"class":317},[307,872,873],{"class":321},"referrer ",[307,875,471],{"class":317},[307,877,408],{"class":321},[296,879,884],{"className":880,"code":881,"filename":882,"language":883,"meta":302,"style":302},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[web] info  { action: 'page_view', path: '\u002Fproducts', referrer: 'https:\u002F\u002Fgoogle.com' }\n","Browser console","bash",[304,885,886],{"__ignoreMap":302},[307,887,888,891,893,896,899,901,904,906,908,910,912,915,917,919,921,923,926,928,931,933],{"class":309,"line":310},[307,889,890],{"class":317},"[",[307,892,400],{"class":321},[307,894,895],{"class":317},"]",[307,897,898],{"class":321}," info  ",[307,900,389],{"class":317},[307,902,903],{"class":563}," action:",[307,905,337],{"class":317},[307,907,843],{"class":340},[307,909,403],{"class":317},[307,911,325],{"class":340},[307,913,914],{"class":340}," path:",[307,916,337],{"class":317},[307,918,856],{"class":340},[307,920,403],{"class":317},[307,922,325],{"class":340},[307,924,925],{"class":340}," referrer:",[307,927,337],{"class":317},[307,929,930],{"class":340},"https:\u002F\u002Fgoogle.com",[307,932,403],{"class":317},[307,934,935],{"class":340}," }\n",[807,937,939],{"id":938},"tag-message-form-quick-logs","Tag + Message Form (quick logs)",[282,941,942],{},"Pass a tag and a message for quick, readable logs:",[296,944,947],{"className":298,"code":945,"filename":946,"language":301,"meta":302,"style":302},"log.info('auth', 'User logged in')\n","composables\u002FuseAuth.ts",[304,948,949],{"__ignoreMap":302},[307,950,951,953,955,957,959,961,964,966,968,970,973,975],{"class":309,"line":310},[307,952,751],{"class":321},[307,954,422],{"class":317},[307,956,425],{"class":363},[307,958,367],{"class":321},[307,960,403],{"class":317},[307,962,963],{"class":340},"auth",[307,965,403],{"class":317},[307,967,325],{"class":317},[307,969,337],{"class":317},[307,971,972],{"class":340},"User logged in",[307,974,403],{"class":317},[307,976,408],{"class":321},[296,978,980],{"className":880,"code":979,"filename":882,"language":883,"meta":302,"style":302},"[auth] User logged in\n",[304,981,982],{"__ignoreMap":302},[307,983,984,986,988,990],{"class":309,"line":310},[307,985,890],{"class":317},[307,987,963],{"class":321},[307,989,895],{"class":317},[307,991,992],{"class":321}," User logged in\n",[807,994,996],{"id":995},"available-levels","Available Levels",[282,998,999,1000,1003,1004,1003,1007,1010,1011,422],{},"Both forms support four levels: ",[304,1001,1002],{},"log.info()",", ",[304,1005,1006],{},"log.warn()",[304,1008,1009],{},"log.error()",", and ",[304,1012,1013],{},"log.debug()",[286,1015,1017],{"id":1016},"identity-context","Identity Context",[282,1019,1020,1021,395],{},"Track which user generated a log with ",[304,1022,1023],{},"setIdentity()",[296,1025,1027],{"className":298,"code":1026,"filename":946,"language":301,"meta":302,"style":302},"import { setIdentity, clearIdentity, log } from 'evlog\u002Fclient'\n\n\u002F\u002F After login\nsetIdentity({ userId: 'usr_123', plan: 'pro' })\n\nlog.info({ action: 'dashboard_view' })\n\u002F\u002F → { userId: 'usr_123', plan: 'pro', action: 'dashboard_view', ... }\n\n\u002F\u002F After logout\nclearIdentity()\n",[304,1028,1029,1057,1061,1067,1106,1110,1137,1142,1146,1151],{"__ignoreMap":302},[307,1030,1031,1033,1035,1038,1040,1043,1045,1047,1049,1051,1053,1055],{"class":309,"line":310},[307,1032,314],{"class":313},[307,1034,318],{"class":317},[307,1036,1037],{"class":321}," setIdentity",[307,1039,325],{"class":317},[307,1041,1042],{"class":321}," clearIdentity",[307,1044,325],{"class":317},[307,1046,328],{"class":321},[307,1048,331],{"class":317},[307,1050,334],{"class":313},[307,1052,337],{"class":317},[307,1054,341],{"class":340},[307,1056,344],{"class":317},[307,1058,1059],{"class":309,"line":347},[307,1060,351],{"emptyLinePlaceholder":350},[307,1062,1063],{"class":309,"line":354},[307,1064,1066],{"class":1065},"sHwdD","\u002F\u002F After login\n",[307,1068,1069,1072,1074,1076,1079,1081,1083,1086,1088,1090,1093,1095,1097,1100,1102,1104],{"class":309,"line":380},[307,1070,1071],{"class":363},"setIdentity",[307,1073,367],{"class":321},[307,1075,389],{"class":317},[307,1077,1078],{"class":386}," userId",[307,1080,395],{"class":317},[307,1082,337],{"class":317},[307,1084,1085],{"class":340},"usr_123",[307,1087,403],{"class":317},[307,1089,325],{"class":317},[307,1091,1092],{"class":386}," plan",[307,1094,395],{"class":317},[307,1096,337],{"class":317},[307,1098,1099],{"class":340},"pro",[307,1101,403],{"class":317},[307,1103,331],{"class":317},[307,1105,408],{"class":321},[307,1107,1108],{"class":309,"line":411},[307,1109,351],{"emptyLinePlaceholder":350},[307,1111,1112,1114,1116,1118,1120,1122,1124,1126,1128,1131,1133,1135],{"class":309,"line":416},[307,1113,751],{"class":321},[307,1115,422],{"class":317},[307,1117,425],{"class":363},[307,1119,367],{"class":321},[307,1121,389],{"class":317},[307,1123,432],{"class":386},[307,1125,395],{"class":317},[307,1127,337],{"class":317},[307,1129,1130],{"class":340},"dashboard_view",[307,1132,403],{"class":317},[307,1134,331],{"class":317},[307,1136,408],{"class":321},[307,1138,1139],{"class":309,"line":468},[307,1140,1141],{"class":1065},"\u002F\u002F → { userId: 'usr_123', plan: 'pro', action: 'dashboard_view', ... }\n",[307,1143,1144],{"class":309,"line":613},[307,1145,351],{"emptyLinePlaceholder":350},[307,1147,1148],{"class":309,"line":657},[307,1149,1150],{"class":1065},"\u002F\u002F After logout\n",[307,1152,1153,1156],{"class":309,"line":666},[307,1154,1155],{"class":363},"clearIdentity",[307,1157,1158],{"class":321},"()\n",[282,1160,1161],{},"Identity fields are automatically merged into every log event until cleared. This lets you correlate browser events to specific users in your observability tools.",[286,1163,76],{"id":1164},"configuration",[282,1166,1167,1170],{},[304,1168,1169],{},"initLog()"," accepts the following options:",[1172,1173,1174,1190],"table",{},[1175,1176,1177],"thead",{},[1178,1179,1180,1184,1187],"tr",{},[1181,1182,1183],"th",{},"Option",[1181,1185,1186],{},"Default",[1181,1188,1189],{},"Description",[1191,1192,1193,1209,1223,1237,1252],"tbody",{},[1178,1194,1195,1201,1206],{},[1196,1197,1198],"td",{},[304,1199,1200],{},"enabled",[1196,1202,1203],{},[304,1204,1205],{},"true",[1196,1207,1208],{},"Enable or disable all client logging",[1178,1210,1211,1216,1220],{},[1196,1212,1213],{},[304,1214,1215],{},"console",[1196,1217,1218],{},[304,1219,1205],{},[1196,1221,1222],{},"Output logs to the browser console",[1178,1224,1225,1230,1234],{},[1196,1226,1227],{},[304,1228,1229],{},"pretty",[1196,1231,1232],{},[304,1233,1205],{},[1196,1235,1236],{},"Use colored, formatted console output",[1178,1238,1239,1244,1249],{},[1196,1240,1241],{},[304,1242,1243],{},"service",[1196,1245,1246],{},[304,1247,1248],{},"'client'",[1196,1250,1251],{},"Service name included in every log event",[1178,1253,1254,1259,1262],{},[1196,1255,1256],{},[304,1257,1258],{},"transport",[1196,1260,1261],{},"-",[1196,1263,1264],{},"Send logs to a server endpoint (see below)",[296,1266,1269],{"className":298,"code":1267,"filename":1268,"language":301,"meta":302,"style":302},"initLog({\n  service: 'web',\n  transport: {\n    enabled: true,\n    endpoint: '\u002Fapi\u002F_evlog\u002Fingest', \u002F\u002F default endpoint\n  },\n})\n","app\u002Fplugins\u002Flogger.client.ts",[304,1270,1271,1280,1296,1305,1318,1337,1342],{"__ignoreMap":302},[307,1272,1273,1275,1277],{"class":309,"line":310},[307,1274,728],{"class":363},[307,1276,367],{"class":321},[307,1278,1279],{"class":317},"{\n",[307,1281,1282,1285,1287,1289,1291,1293],{"class":309,"line":347},[307,1283,1284],{"class":386},"  service",[307,1286,395],{"class":317},[307,1288,337],{"class":317},[307,1290,400],{"class":340},[307,1292,403],{"class":317},[307,1294,1295],{"class":317},",\n",[307,1297,1298,1301,1303],{"class":309,"line":354},[307,1299,1300],{"class":386},"  transport",[307,1302,395],{"class":317},[307,1304,377],{"class":317},[307,1306,1307,1310,1312,1316],{"class":309,"line":380},[307,1308,1309],{"class":386},"    enabled",[307,1311,395],{"class":317},[307,1313,1315],{"class":1314},"sfNiH"," true",[307,1317,1295],{"class":317},[307,1319,1320,1323,1325,1327,1330,1332,1334],{"class":309,"line":411},[307,1321,1322],{"class":386},"    endpoint",[307,1324,395],{"class":317},[307,1326,337],{"class":317},[307,1328,1329],{"class":340},"\u002Fapi\u002F_evlog\u002Fingest",[307,1331,403],{"class":317},[307,1333,325],{"class":317},[307,1335,1336],{"class":1065}," \u002F\u002F default endpoint\n",[307,1338,1339],{"class":309,"line":416},[307,1340,1341],{"class":317},"  },\n",[307,1343,1344,1346],{"class":309,"line":468},[307,1345,471],{"class":317},[307,1347,408],{"class":321},[1349,1350,1351,1003,1353,1010,1355,1357,1358,1360],"callout",{"color":425,"icon":13},[304,1352,1200],{},[304,1354,1215],{},[304,1356,1229],{}," all default to ",[304,1359,1205],{},". You only need to set them if you want to change the defaults.",[286,1362,1364],{"id":1363},"sending-logs-to-the-server","Sending Logs to the Server",[282,1366,1367],{},"By default, client logs only appear in the browser console. To persist them, you have two options:",[807,1369,1371],{"id":1370},"built-in-transport","Built-in Transport",[282,1373,1374,1375,1377,1378,1381,1382,1385],{},"The simplest approach is to enable the built-in transport in ",[304,1376,1169],{},". Each log is sent individually via ",[304,1379,1380],{},"fetch"," with ",[304,1383,1384],{},"keepalive: true",". Good for low-volume apps.",[293,1387,1388,1507],{},[296,1389,1391],{"className":298,"code":1390,"filename":300,"language":301,"meta":302,"style":302},"import { initLog } from 'evlog\u002Fclient'\n\nexport default defineNuxtPlugin(() => {\n  initLog({\n    service: 'web',\n    transport: {\n      enabled: true,\n      endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n    },\n  })\n})\n",[304,1392,1393,1411,1415,1431,1439,1454,1463,1474,1489,1494,1501],{"__ignoreMap":302},[307,1394,1395,1397,1399,1401,1403,1405,1407,1409],{"class":309,"line":310},[307,1396,314],{"class":313},[307,1398,318],{"class":317},[307,1400,322],{"class":321},[307,1402,331],{"class":317},[307,1404,334],{"class":313},[307,1406,337],{"class":317},[307,1408,341],{"class":340},[307,1410,344],{"class":317},[307,1412,1413],{"class":309,"line":347},[307,1414,351],{"emptyLinePlaceholder":350},[307,1416,1417,1419,1421,1423,1425,1427,1429],{"class":309,"line":354},[307,1418,357],{"class":313},[307,1420,360],{"class":313},[307,1422,364],{"class":363},[307,1424,367],{"class":321},[307,1426,370],{"class":317},[307,1428,374],{"class":373},[307,1430,377],{"class":317},[307,1432,1433,1435,1437],{"class":309,"line":380},[307,1434,383],{"class":363},[307,1436,367],{"class":386},[307,1438,1279],{"class":317},[307,1440,1441,1444,1446,1448,1450,1452],{"class":309,"line":411},[307,1442,1443],{"class":386},"    service",[307,1445,395],{"class":317},[307,1447,337],{"class":317},[307,1449,400],{"class":340},[307,1451,403],{"class":317},[307,1453,1295],{"class":317},[307,1455,1456,1459,1461],{"class":309,"line":416},[307,1457,1458],{"class":386},"    transport",[307,1460,395],{"class":317},[307,1462,377],{"class":317},[307,1464,1465,1468,1470,1472],{"class":309,"line":468},[307,1466,1467],{"class":386},"      enabled",[307,1469,395],{"class":317},[307,1471,1315],{"class":1314},[307,1473,1295],{"class":317},[307,1475,1476,1479,1481,1483,1485,1487],{"class":309,"line":613},[307,1477,1478],{"class":386},"      endpoint",[307,1480,395],{"class":317},[307,1482,337],{"class":317},[307,1484,1329],{"class":340},[307,1486,403],{"class":317},[307,1488,1295],{"class":317},[307,1490,1491],{"class":309,"line":657},[307,1492,1493],{"class":317},"    },\n",[307,1495,1496,1499],{"class":309,"line":666},[307,1497,1498],{"class":317},"  }",[307,1500,408],{"class":386},[307,1502,1503,1505],{"class":309,"line":671},[307,1504,471],{"class":317},[307,1506,408],{"class":321},[296,1508,1510],{"className":298,"code":1509,"filename":695,"language":301,"meta":302,"style":302},"import { initLog } from 'evlog\u002Fclient'\n\ninitLog({\n  service: 'web',\n  transport: {\n    enabled: true,\n    endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n  },\n})\n",[304,1511,1512,1530,1534,1542,1556,1564,1574,1588,1592],{"__ignoreMap":302},[307,1513,1514,1516,1518,1520,1522,1524,1526,1528],{"class":309,"line":310},[307,1515,314],{"class":313},[307,1517,318],{"class":317},[307,1519,322],{"class":321},[307,1521,331],{"class":317},[307,1523,334],{"class":313},[307,1525,337],{"class":317},[307,1527,341],{"class":340},[307,1529,344],{"class":317},[307,1531,1532],{"class":309,"line":347},[307,1533,351],{"emptyLinePlaceholder":350},[307,1535,1536,1538,1540],{"class":309,"line":354},[307,1537,728],{"class":363},[307,1539,367],{"class":321},[307,1541,1279],{"class":317},[307,1543,1544,1546,1548,1550,1552,1554],{"class":309,"line":380},[307,1545,1284],{"class":386},[307,1547,395],{"class":317},[307,1549,337],{"class":317},[307,1551,400],{"class":340},[307,1553,403],{"class":317},[307,1555,1295],{"class":317},[307,1557,1558,1560,1562],{"class":309,"line":411},[307,1559,1300],{"class":386},[307,1561,395],{"class":317},[307,1563,377],{"class":317},[307,1565,1566,1568,1570,1572],{"class":309,"line":416},[307,1567,1309],{"class":386},[307,1569,395],{"class":317},[307,1571,1315],{"class":1314},[307,1573,1295],{"class":317},[307,1575,1576,1578,1580,1582,1584,1586],{"class":309,"line":468},[307,1577,1322],{"class":386},[307,1579,395],{"class":317},[307,1581,337],{"class":317},[307,1583,1329],{"class":340},[307,1585,403],{"class":317},[307,1587,1295],{"class":317},[307,1589,1590],{"class":309,"line":613},[307,1591,1341],{"class":317},[307,1593,1594,1596],{"class":309,"line":657},[307,1595,471],{"class":317},[307,1597,408],{"class":321},[1349,1599,1600,1601,1606],{"color":425,"icon":13},"In Nuxt with the evlog module, the server ingest endpoint is auto-registered. For other frameworks, you need to create the endpoint yourself. See the ",[1602,1603,1605],"a",{"href":1604},"\u002Fadapters\u002Fbrowser#server-endpoint","Browser Drain"," docs for Express and Hono examples.",[807,1608,1610],{"id":1609},"browser-drain-pipeline","Browser Drain Pipeline",[282,1612,1613],{},"For higher volume or when you need batching, retries, and page-exit flushing, use the browser drain. This works with any frontend and has no framework dependency.",[293,1615,1616,1847],{},[296,1617,1619],{"className":298,"code":1618,"filename":300,"language":301,"meta":302,"style":302},"import { initLogger, log } from 'evlog'\nimport { createBrowserLogDrain } from 'evlog\u002Fbrowser'\n\nexport default defineNuxtPlugin(() => {\n  const drain = createBrowserLogDrain({\n    drain: { endpoint: '\u002Fapi\u002F_evlog\u002Fingest' },\n    pipeline: {\n      batch: { size: 25, intervalMs: 2000 },\n      retry: { maxAttempts: 2 },\n    },\n  })\n\n  initLogger({ drain })\n  log.info({ action: 'app_init' })\n})\n",[304,1620,1621,1645,1665,1669,1685,1702,1725,1734,1764,1783,1787,1793,1797,1813,1840],{"__ignoreMap":302},[307,1622,1623,1625,1627,1630,1632,1634,1636,1638,1640,1643],{"class":309,"line":310},[307,1624,314],{"class":313},[307,1626,318],{"class":317},[307,1628,1629],{"class":321}," initLogger",[307,1631,325],{"class":317},[307,1633,328],{"class":321},[307,1635,331],{"class":317},[307,1637,334],{"class":313},[307,1639,337],{"class":317},[307,1641,1642],{"class":340},"evlog",[307,1644,344],{"class":317},[307,1646,1647,1649,1651,1654,1656,1658,1660,1663],{"class":309,"line":347},[307,1648,314],{"class":313},[307,1650,318],{"class":317},[307,1652,1653],{"class":321}," createBrowserLogDrain",[307,1655,331],{"class":317},[307,1657,334],{"class":313},[307,1659,337],{"class":317},[307,1661,1662],{"class":340},"evlog\u002Fbrowser",[307,1664,344],{"class":317},[307,1666,1667],{"class":309,"line":354},[307,1668,351],{"emptyLinePlaceholder":350},[307,1670,1671,1673,1675,1677,1679,1681,1683],{"class":309,"line":380},[307,1672,357],{"class":313},[307,1674,360],{"class":313},[307,1676,364],{"class":363},[307,1678,367],{"class":321},[307,1680,370],{"class":317},[307,1682,374],{"class":373},[307,1684,377],{"class":317},[307,1686,1687,1690,1693,1696,1698,1700],{"class":309,"line":411},[307,1688,1689],{"class":373},"  const",[307,1691,1692],{"class":321}," drain",[307,1694,1695],{"class":317}," =",[307,1697,1653],{"class":363},[307,1699,367],{"class":386},[307,1701,1279],{"class":317},[307,1703,1704,1707,1709,1711,1714,1716,1718,1720,1722],{"class":309,"line":416},[307,1705,1706],{"class":386},"    drain",[307,1708,395],{"class":317},[307,1710,318],{"class":317},[307,1712,1713],{"class":386}," endpoint",[307,1715,395],{"class":317},[307,1717,337],{"class":317},[307,1719,1329],{"class":340},[307,1721,403],{"class":317},[307,1723,1724],{"class":317}," },\n",[307,1726,1727,1730,1732],{"class":309,"line":468},[307,1728,1729],{"class":386},"    pipeline",[307,1731,395],{"class":317},[307,1733,377],{"class":317},[307,1735,1736,1739,1741,1743,1746,1748,1752,1754,1757,1759,1762],{"class":309,"line":613},[307,1737,1738],{"class":386},"      batch",[307,1740,395],{"class":317},[307,1742,318],{"class":317},[307,1744,1745],{"class":386}," size",[307,1747,395],{"class":317},[307,1749,1751],{"class":1750},"sbssI"," 25",[307,1753,325],{"class":317},[307,1755,1756],{"class":386}," intervalMs",[307,1758,395],{"class":317},[307,1760,1761],{"class":1750}," 2000",[307,1763,1724],{"class":317},[307,1765,1766,1769,1771,1773,1776,1778,1781],{"class":309,"line":657},[307,1767,1768],{"class":386},"      retry",[307,1770,395],{"class":317},[307,1772,318],{"class":317},[307,1774,1775],{"class":386}," maxAttempts",[307,1777,395],{"class":317},[307,1779,1780],{"class":1750}," 2",[307,1782,1724],{"class":317},[307,1784,1785],{"class":309,"line":666},[307,1786,1493],{"class":317},[307,1788,1789,1791],{"class":309,"line":671},[307,1790,1498],{"class":317},[307,1792,408],{"class":386},[307,1794,1795],{"class":309,"line":688},[307,1796,351],{"emptyLinePlaceholder":350},[307,1798,1800,1803,1805,1807,1809,1811],{"class":309,"line":1799},13,[307,1801,1802],{"class":363},"  initLogger",[307,1804,367],{"class":386},[307,1806,389],{"class":317},[307,1808,1692],{"class":321},[307,1810,331],{"class":317},[307,1812,408],{"class":386},[307,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838],{"class":309,"line":1815},14,[307,1817,419],{"class":321},[307,1819,422],{"class":317},[307,1821,425],{"class":363},[307,1823,367],{"class":386},[307,1825,389],{"class":317},[307,1827,432],{"class":386},[307,1829,395],{"class":317},[307,1831,337],{"class":317},[307,1833,439],{"class":340},[307,1835,403],{"class":317},[307,1837,331],{"class":317},[307,1839,408],{"class":386},[307,1841,1843,1845],{"class":309,"line":1842},15,[307,1844,471],{"class":317},[307,1846,408],{"class":321},[296,1848,1850],{"className":298,"code":1849,"filename":695,"language":301,"meta":302,"style":302},"import { initLogger, log } from 'evlog'\nimport { createBrowserLogDrain } from 'evlog\u002Fbrowser'\n\nconst drain = createBrowserLogDrain({\n  drain: { endpoint: 'https:\u002F\u002Flogs.example.com\u002Fv1\u002Fingest' },\n  pipeline: {\n    batch: { size: 25, intervalMs: 2000 },\n    retry: { maxAttempts: 2 },\n  },\n})\n\ninitLogger({ drain })\nlog.info({ action: 'app_init' })\n",[304,1851,1852,1874,1892,1896,1913,1935,1944,1969,1986,1990,1996,2000,2015],{"__ignoreMap":302},[307,1853,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872],{"class":309,"line":310},[307,1855,314],{"class":313},[307,1857,318],{"class":317},[307,1859,1629],{"class":321},[307,1861,325],{"class":317},[307,1863,328],{"class":321},[307,1865,331],{"class":317},[307,1867,334],{"class":313},[307,1869,337],{"class":317},[307,1871,1642],{"class":340},[307,1873,344],{"class":317},[307,1875,1876,1878,1880,1882,1884,1886,1888,1890],{"class":309,"line":347},[307,1877,314],{"class":313},[307,1879,318],{"class":317},[307,1881,1653],{"class":321},[307,1883,331],{"class":317},[307,1885,334],{"class":313},[307,1887,337],{"class":317},[307,1889,1662],{"class":340},[307,1891,344],{"class":317},[307,1893,1894],{"class":309,"line":354},[307,1895,351],{"emptyLinePlaceholder":350},[307,1897,1898,1901,1904,1907,1909,1911],{"class":309,"line":380},[307,1899,1900],{"class":373},"const",[307,1902,1903],{"class":321}," drain ",[307,1905,1906],{"class":317},"=",[307,1908,1653],{"class":363},[307,1910,367],{"class":321},[307,1912,1279],{"class":317},[307,1914,1915,1918,1920,1922,1924,1926,1928,1931,1933],{"class":309,"line":411},[307,1916,1917],{"class":386},"  drain",[307,1919,395],{"class":317},[307,1921,318],{"class":317},[307,1923,1713],{"class":386},[307,1925,395],{"class":317},[307,1927,337],{"class":317},[307,1929,1930],{"class":340},"https:\u002F\u002Flogs.example.com\u002Fv1\u002Fingest",[307,1932,403],{"class":317},[307,1934,1724],{"class":317},[307,1936,1937,1940,1942],{"class":309,"line":416},[307,1938,1939],{"class":386},"  pipeline",[307,1941,395],{"class":317},[307,1943,377],{"class":317},[307,1945,1946,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967],{"class":309,"line":468},[307,1947,1948],{"class":386},"    batch",[307,1950,395],{"class":317},[307,1952,318],{"class":317},[307,1954,1745],{"class":386},[307,1956,395],{"class":317},[307,1958,1751],{"class":1750},[307,1960,325],{"class":317},[307,1962,1756],{"class":386},[307,1964,395],{"class":317},[307,1966,1761],{"class":1750},[307,1968,1724],{"class":317},[307,1970,1971,1974,1976,1978,1980,1982,1984],{"class":309,"line":613},[307,1972,1973],{"class":386},"    retry",[307,1975,395],{"class":317},[307,1977,318],{"class":317},[307,1979,1775],{"class":386},[307,1981,395],{"class":317},[307,1983,1780],{"class":1750},[307,1985,1724],{"class":317},[307,1987,1988],{"class":309,"line":657},[307,1989,1341],{"class":317},[307,1991,1992,1994],{"class":309,"line":666},[307,1993,471],{"class":317},[307,1995,408],{"class":321},[307,1997,1998],{"class":309,"line":671},[307,1999,351],{"emptyLinePlaceholder":350},[307,2001,2002,2005,2007,2009,2011,2013],{"class":309,"line":688},[307,2003,2004],{"class":363},"initLogger",[307,2006,367],{"class":321},[307,2008,389],{"class":317},[307,2010,1903],{"class":321},[307,2012,471],{"class":317},[307,2014,408],{"class":321},[307,2016,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039],{"class":309,"line":1799},[307,2018,751],{"class":321},[307,2020,422],{"class":317},[307,2022,425],{"class":363},[307,2024,367],{"class":321},[307,2026,389],{"class":317},[307,2028,432],{"class":386},[307,2030,395],{"class":317},[307,2032,337],{"class":317},[307,2034,439],{"class":340},[307,2036,403],{"class":317},[307,2038,331],{"class":317},[307,2040,408],{"class":321},[282,2042,2043],{},"The browser drain automatically:",[2045,2046,2047,2055,2061],"ul",{},[2048,2049,2050,2054],"li",{},[2051,2052,2053],"strong",{},"Batches"," events by size and time interval",[2048,2056,2057,2060],{},[2051,2058,2059],{},"Retries"," failed sends with exponential backoff",[2048,2062,2063,2066,2067,2070],{},[2051,2064,2065],{},"Flushes"," buffered events via ",[304,2068,2069],{},"sendBeacon"," when the page becomes hidden (tab switch, navigation, close)",[1349,2072,2075,2076,2078],{"color":2073,"icon":2074},"neutral","i-lucide-arrow-right","See the ",[1602,2077,1605],{"href":203}," adapter docs for full configuration reference, authentication, and server endpoint examples.",[286,2080,2082],{"id":2081},"next-steps","Next Steps",[2045,2084,2085,2090,2095],{},[2048,2086,2087,2089],{},[1602,2088,1605],{"href":203}," - Batching, retry, and sendBeacon fallback",[2048,2091,2092,2094],{},[1602,2093,197],{"href":198}," - Advanced pipeline configuration",[2048,2096,2097,2099],{},[1602,2098,51],{"href":52}," - Surface client errors with actionable context",[2101,2102,2103],"style",{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .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":302,"searchDepth":347,"depth":347,"links":2105},[2106,2107,2112,2113,2114,2118],{"id":288,"depth":347,"text":20},{"id":799,"depth":347,"text":800,"children":2108},[2109,2110,2111],{"id":809,"depth":354,"text":810},{"id":938,"depth":354,"text":939},{"id":995,"depth":354,"text":996},{"id":1016,"depth":347,"text":1017},{"id":1164,"depth":347,"text":76},{"id":1363,"depth":347,"text":1364,"children":2115},[2116,2117],{"id":1370,"depth":354,"text":1371},{"id":1609,"depth":354,"text":1610},{"id":2081,"depth":347,"text":2082},"Capture browser events with structured logging. Same API as the server, with automatic console styling, user identity context, and optional server transport.","md",[2122,2124],{"label":1605,"icon":205,"to":203,"color":2073,"variant":2123},"subtle",{"label":46,"icon":49,"to":47,"color":2073,"variant":2123},{},{"icon":59},{"title":56,"description":2119},"X9Gi9XHVCD9MhuBa5rw9hozrMvOH-FjAkLtDPO-nWeo",[2130,2132],{"title":51,"path":52,"stem":53,"description":2131,"icon":54,"children":-1},"Create errors that explain why they occurred and how to fix them. Add actionable context with why, fix, and link fields for humans and AI agents.",{"title":61,"path":62,"stem":63,"description":2133,"icon":64,"children":-1},"Capture token usage, tool calls, model info, and streaming metrics from the Vercel AI SDK into wide events. Wrap your model and get full AI observability.",1775288551549]