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