[{"data":1,"prerenderedAt":2738},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-client-logging":529,"-use-cases-client-logging-surround":2733},[4,29,76,122,304,436,495],{"title":5,"path":6,"stem":7,"children":8,"page":28},"Start","\u002Fstart","1.start",[9,13,18,23],{"title":10,"path":11,"stem":12},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction",{"title":14,"path":15,"stem":16,"icon":17},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":24,"path":25,"stem":26,"icon":27},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Learn","\u002Flearn","2.learn",[34,38,43,48,53,58,62,67,72],{"title":35,"path":36,"stem":37},"Learn evlog","\u002Flearn\u002Foverview","2.learn\u002F0.overview",{"title":39,"path":40,"stem":41,"icon":42},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":44,"path":45,"stem":46,"icon":47},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":49,"path":50,"stem":51,"icon":52},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":54,"path":55,"stem":56,"icon":57},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":59,"path":60,"stem":61},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling",{"title":63,"path":64,"stem":65,"icon":66},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":68,"path":69,"stem":70,"icon":71},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":73,"path":74,"stem":75},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs",{"title":77,"path":78,"stem":79,"children":80,"page":28},"CLI","\u002Fcli","3.cli",[81,85,90,95,99,103,108,113,118],{"title":82,"path":83,"stem":84},"evlog CLI","\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":86,"path":87,"stem":88,"icon":89},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":91,"path":92,"stem":93,"icon":94},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":96,"path":97,"stem":98},"Map rules","\u002Fcli\u002Frules","3.cli\u002F3.rules",{"title":100,"path":101,"stem":102},"Map scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring",{"title":104,"path":105,"stem":106,"icon":107},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":109,"path":110,"stem":111,"icon":112},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":114,"path":115,"stem":116,"icon":117},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":119,"path":120,"stem":121},"evlog agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents",{"title":123,"path":124,"stem":125,"children":126,"page":28},"Integrate","\u002Fintegrate","4.integrate",[127,132,216],{"title":128,"path":129,"stem":130,"icon":131},"Overview","\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":28},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,141,171,196],{"title":128,"path":138,"stem":139,"icon":140},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview","i-lucide-list",{"title":142,"path":143,"stem":144,"children":145,"page":28},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[146,151,156,161,166],{"title":147,"path":148,"stem":149,"icon":150},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":152,"path":153,"stem":154,"icon":155},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":157,"path":158,"stem":159,"icon":160},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":162,"path":163,"stem":164,"icon":165},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":167,"path":168,"stem":169,"icon":170},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":172,"path":173,"stem":174,"children":175,"page":28},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[176,181,186,191],{"title":177,"path":178,"stem":179,"icon":180},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":182,"path":183,"stem":184,"icon":185},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":187,"path":188,"stem":189,"icon":190},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":192,"path":193,"stem":194,"icon":195},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":197,"path":198,"stem":199,"children":200,"page":28},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[201,206,211],{"title":202,"path":203,"stem":204,"icon":205},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":207,"path":208,"stem":209,"icon":210},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":212,"path":213,"stem":214,"icon":215},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":217,"path":218,"stem":219,"children":220,"page":28},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[221,225,230,235,240,245,250,255,260,265,270,275,280,285,289,294,299],{"title":128,"path":222,"stem":223,"icon":224},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":226,"path":227,"stem":228,"icon":229},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":231,"path":232,"stem":233,"icon":234},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":236,"path":237,"stem":238,"icon":239},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":241,"path":242,"stem":243,"icon":244},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":246,"path":247,"stem":248,"icon":249},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":251,"path":252,"stem":253,"icon":254},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":256,"path":257,"stem":258,"icon":259},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":261,"path":262,"stem":263,"icon":264},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":266,"path":267,"stem":268,"icon":269},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":271,"path":272,"stem":273,"icon":274},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":276,"path":277,"stem":278,"icon":279},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":281,"path":282,"stem":283,"icon":284},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":286,"path":287,"stem":288,"icon":71},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":290,"path":291,"stem":292,"icon":293},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":295,"path":296,"stem":297,"icon":298},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":300,"path":301,"stem":302,"icon":303},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":305,"path":306,"stem":307,"children":308,"page":28},"Use Cases","\u002Fuse-cases","5.use-cases",[309,312,317,346,374,407,427,432],{"title":305,"path":310,"stem":311},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":313,"path":314,"stem":315,"icon":316},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":28},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[323,326,331,336,341],{"title":128,"path":324,"stem":325,"icon":140},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":327,"path":328,"stem":329,"icon":330},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":332,"path":333,"stem":334,"icon":335},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":337,"path":338,"stem":339,"icon":340},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":342,"path":343,"stem":344,"icon":345},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":28},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[352,355,360,365,369],{"title":128,"path":353,"stem":354,"icon":140},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":361,"path":362,"stem":363,"icon":364},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":366,"path":367,"stem":368,"icon":316},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":370,"path":371,"stem":372,"icon":373},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":28},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[380,383,388,393,398,402],{"title":128,"path":381,"stem":382,"icon":140},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":384,"path":385,"stem":386,"icon":387},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":389,"path":390,"stem":391,"icon":392},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":394,"path":395,"stem":396,"icon":397},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":376},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":403,"path":404,"stem":405,"icon":406},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes","i-lucide-book-open",{"title":342,"icon":373,"path":408,"stem":409,"children":410,"page":28},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[411,414,419,423],{"title":128,"path":412,"stem":413,"icon":140},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":415,"path":416,"stem":417,"icon":418},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":420,"path":421,"stem":422},"Telemetry Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest",{"title":424,"path":425,"stem":426,"icon":406},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":428,"path":429,"stem":430,"icon":431},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":433,"path":434,"stem":435},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":437,"path":438,"stem":439,"children":440,"page":28},"Extend","\u002Fextend","6.extend",[441,445,450,455,459,464,468,472,476,481,486,491],{"title":128,"path":442,"stem":443,"icon":444},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":446,"path":447,"stem":448,"icon":449},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":451,"path":452,"stem":453,"icon":454},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":456,"path":457,"stem":458,"icon":449},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":460,"path":461,"stem":462,"icon":463},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":465,"stem":466,"icon":467},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":469,"path":470,"stem":471},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":473,"path":474,"stem":475,"icon":431},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":477,"path":478,"stem":479,"icon":480},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling","i-lucide-filter",{"title":482,"path":483,"stem":484,"icon":485},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":487,"path":488,"stem":489,"icon":490},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":492,"path":493,"stem":494},"Drain Pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline",{"title":424,"path":496,"stem":497,"children":498,"page":28},"\u002Freference","7.reference",[499,504,507,512,516,521,525],{"title":500,"path":501,"stem":502,"icon":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":370,"path":505,"stem":506,"icon":373},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":508,"path":509,"stem":510,"icon":511},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":513,"path":514,"stem":515,"icon":376},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":517,"path":518,"stem":519,"icon":520},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":522,"path":523,"stem":524,"icon":431},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":526,"path":527,"stem":528},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":530,"title":313,"body":531,"description":2722,"extension":2723,"links":2724,"meta":2729,"navigation":2730,"path":314,"seo":2731,"stem":315,"__hash__":2732},"docs\u002F5.use-cases\u002F1.client-logging.md",{"type":532,"value":533,"toc":2705},"minimark",[534,538,541,585,589,592,1091,1097,1105,1129,1148,1158,1162,1167,1172,1178,1239,1297,1301,1304,1338,1354,1358,1375,1396,1400,1406,1541,1544,1547,1553,1668,1751,1765,1769,1772,1776,1790,2202,2210,2214,2221,2644,2647,2671,2679,2683,2701],[535,536,537],"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.",[539,540],"client-server-beacon",{},[542,543,546,549,571],"prompt",{":actions":544,"description":545,"icon":316},"[\"copy\",\"cursor\",\"claude\"]","Ship browser logs to my server",[535,547,548],{},"Ship browser logs to my server with evlog client logging.",[550,551,552,556,559,562,565,568],"ul",{},[553,554,555],"li",{},"Detect my framework (Nuxt, Next.js, SvelteKit, etc.) and pick the matching client entrypoint",[553,557,558],{},"Call initLog({ service: 'web' }) once at app start",[553,560,561],{},"Use log.info \u002F log.warn \u002F log.error in components, composables, and event handlers",[553,563,564],{},"Set user identity with setIdentity({ userId, email }) after login, clearIdentity() on logout",[553,566,567],{},"Enable transport in the framework config so logs POST to \u002Fapi\u002F_evlog\u002Fingest in batches",[553,569,570],{},"On the server, evlog auto-runs the drain pipeline on transported events with source: 'client'",[535,572,573,574,580,581],{},"Docs: ",[575,576,577],"a",{"href":577,"rel":578},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fclient-logging",[579],"nofollow","\nHTTP transport: ",[575,582,583],{"href":583,"rel":584},"https:\u002F\u002Fwww.evlog.dev\u002Fextend\u002Fdrain-pipeline",[579],[586,587,24],"h2",{"id":588},"quick-start",[535,590,591],{},"evlog provides a client-side logging API that works in any browser environment:",[593,594,595,774,992],"code-group",{},[596,597,603],"pre",{"className":598,"code":599,"filename":600,"language":601,"meta":602,"style":602},"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","",[604,605,606,645,652,678,709,714,766],"code",{"__ignoreMap":602},[607,608,611,615,619,623,626,629,632,635,638,642],"span",{"class":609,"line":610},"line",1,[607,612,614],{"class":613},"s7zQu","import",[607,616,618],{"class":617},"sMK4o"," {",[607,620,622],{"class":621},"sTEyZ"," initLog",[607,624,625],{"class":617},",",[607,627,628],{"class":621}," log",[607,630,631],{"class":617}," }",[607,633,634],{"class":613}," from",[607,636,637],{"class":617}," '",[607,639,641],{"class":640},"sfazB","evlog\u002Fclient",[607,643,644],{"class":617},"'\n",[607,646,648],{"class":609,"line":647},2,[607,649,651],{"emptyLinePlaceholder":650},true,"\n",[607,653,655,658,661,665,668,671,675],{"class":609,"line":654},3,[607,656,657],{"class":613},"export",[607,659,660],{"class":613}," default",[607,662,664],{"class":663},"s2Zo4"," defineNuxtPlugin",[607,666,667],{"class":621},"(",[607,669,670],{"class":617},"()",[607,672,674],{"class":673},"spNyl"," =>",[607,676,677],{"class":617}," {\n",[607,679,681,684,687,690,693,696,698,701,704,706],{"class":609,"line":680},4,[607,682,683],{"class":663},"  initLog",[607,685,667],{"class":686},"swJcz",[607,688,689],{"class":617},"{",[607,691,692],{"class":686}," service",[607,694,695],{"class":617},":",[607,697,637],{"class":617},[607,699,700],{"class":640},"web",[607,702,703],{"class":617},"'",[607,705,631],{"class":617},[607,707,708],{"class":686},")\n",[607,710,712],{"class":609,"line":711},5,[607,713,651],{"emptyLinePlaceholder":650},[607,715,717,720,723,726,728,730,733,735,737,740,742,744,747,749,752,754,757,759,762,764],{"class":609,"line":716},6,[607,718,719],{"class":621},"  log",[607,721,722],{"class":617},".",[607,724,725],{"class":663},"info",[607,727,667],{"class":686},[607,729,689],{"class":617},[607,731,732],{"class":686}," action",[607,734,695],{"class":617},[607,736,637],{"class":617},[607,738,739],{"class":640},"app_init",[607,741,703],{"class":617},[607,743,625],{"class":617},[607,745,746],{"class":686}," path",[607,748,695],{"class":617},[607,750,751],{"class":621}," window",[607,753,722],{"class":617},[607,755,756],{"class":621},"location",[607,758,722],{"class":617},[607,760,761],{"class":621},"pathname",[607,763,631],{"class":617},[607,765,708],{"class":686},[607,767,769,772],{"class":609,"line":768},7,[607,770,771],{"class":617},"}",[607,773,708],{"class":621},[596,775,778],{"className":598,"code":776,"filename":777,"language":601,"meta":602,"style":602},"'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)",[604,779,780,789,809,831,835,875,888,911,955,964,969,986],{"__ignoreMap":602},[607,781,782,784,787],{"class":609,"line":610},[607,783,703],{"class":617},[607,785,786],{"class":640},"use client",[607,788,644],{"class":617},[607,790,791,793,795,798,800,802,804,807],{"class":609,"line":647},[607,792,614],{"class":613},[607,794,618],{"class":617},[607,796,797],{"class":621}," useEffect",[607,799,631],{"class":617},[607,801,634],{"class":613},[607,803,637],{"class":617},[607,805,806],{"class":640},"react",[607,808,644],{"class":617},[607,810,811,813,815,817,819,821,823,825,827,829],{"class":609,"line":654},[607,812,614],{"class":613},[607,814,618],{"class":617},[607,816,622],{"class":621},[607,818,625],{"class":617},[607,820,628],{"class":621},[607,822,631],{"class":617},[607,824,634],{"class":613},[607,826,637],{"class":617},[607,828,641],{"class":640},[607,830,644],{"class":617},[607,832,833],{"class":609,"line":680},[607,834,651],{"emptyLinePlaceholder":650},[607,836,837,839,842,845,848,852,855,857,859,861,865,867,870,873],{"class":609,"line":711},[607,838,657],{"class":613},[607,840,841],{"class":673}," function",[607,843,844],{"class":663}," LogProvider",[607,846,847],{"class":617},"({",[607,849,851],{"class":850},"sHdIc"," children",[607,853,854],{"class":617}," }:",[607,856,618],{"class":617},[607,858,851],{"class":686},[607,860,695],{"class":617},[607,862,864],{"class":863},"sBMFI"," React",[607,866,722],{"class":617},[607,868,869],{"class":863},"ReactNode",[607,871,872],{"class":617}," })",[607,874,677],{"class":617},[607,876,877,880,882,884,886],{"class":609,"line":716},[607,878,879],{"class":663},"  useEffect",[607,881,667],{"class":686},[607,883,670],{"class":617},[607,885,674],{"class":673},[607,887,677],{"class":617},[607,889,890,893,895,897,899,901,903,905,907,909],{"class":609,"line":768},[607,891,892],{"class":663},"    initLog",[607,894,667],{"class":686},[607,896,689],{"class":617},[607,898,692],{"class":686},[607,900,695],{"class":617},[607,902,637],{"class":617},[607,904,700],{"class":640},[607,906,703],{"class":617},[607,908,631],{"class":617},[607,910,708],{"class":686},[607,912,914,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953],{"class":609,"line":913},8,[607,915,916],{"class":621},"    log",[607,918,722],{"class":617},[607,920,725],{"class":663},[607,922,667],{"class":686},[607,924,689],{"class":617},[607,926,732],{"class":686},[607,928,695],{"class":617},[607,930,637],{"class":617},[607,932,739],{"class":640},[607,934,703],{"class":617},[607,936,625],{"class":617},[607,938,746],{"class":686},[607,940,695],{"class":617},[607,942,751],{"class":621},[607,944,722],{"class":617},[607,946,756],{"class":621},[607,948,722],{"class":617},[607,950,761],{"class":621},[607,952,631],{"class":617},[607,954,708],{"class":686},[607,956,958,961],{"class":609,"line":957},9,[607,959,960],{"class":617},"  },",[607,962,963],{"class":686}," [])\n",[607,965,967],{"class":609,"line":966},10,[607,968,651],{"emptyLinePlaceholder":650},[607,970,972,975,978,980,983],{"class":609,"line":971},11,[607,973,974],{"class":613},"  return",[607,976,977],{"class":686}," \u003C>",[607,979,689],{"class":617},[607,981,982],{"class":621},"children",[607,984,985],{"class":617},"}\u003C\u002F>\n",[607,987,989],{"class":609,"line":988},12,[607,990,991],{"class":617},"}\n",[596,993,996],{"className":598,"code":994,"filename":995,"language":601,"meta":602,"style":602},"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)",[604,997,998,1020,1024,1047],{"__ignoreMap":602},[607,999,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018],{"class":609,"line":610},[607,1001,614],{"class":613},[607,1003,618],{"class":617},[607,1005,622],{"class":621},[607,1007,625],{"class":617},[607,1009,628],{"class":621},[607,1011,631],{"class":617},[607,1013,634],{"class":613},[607,1015,637],{"class":617},[607,1017,641],{"class":640},[607,1019,644],{"class":617},[607,1021,1022],{"class":609,"line":647},[607,1023,651],{"emptyLinePlaceholder":650},[607,1025,1026,1029,1031,1033,1035,1037,1039,1041,1043,1045],{"class":609,"line":654},[607,1027,1028],{"class":663},"initLog",[607,1030,667],{"class":621},[607,1032,689],{"class":617},[607,1034,692],{"class":686},[607,1036,695],{"class":617},[607,1038,637],{"class":617},[607,1040,700],{"class":640},[607,1042,703],{"class":617},[607,1044,631],{"class":617},[607,1046,708],{"class":621},[607,1048,1049,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1087,1089],{"class":609,"line":680},[607,1050,1051],{"class":621},"log",[607,1053,722],{"class":617},[607,1055,725],{"class":663},[607,1057,667],{"class":621},[607,1059,689],{"class":617},[607,1061,732],{"class":686},[607,1063,695],{"class":617},[607,1065,637],{"class":617},[607,1067,739],{"class":640},[607,1069,703],{"class":617},[607,1071,625],{"class":617},[607,1073,746],{"class":686},[607,1075,695],{"class":617},[607,1077,751],{"class":621},[607,1079,722],{"class":617},[607,1081,756],{"class":621},[607,1083,722],{"class":617},[607,1085,1086],{"class":621},"pathname ",[607,1088,771],{"class":617},[607,1090,708],{"class":621},[535,1092,1093,1094,1096],{},"The ",[604,1095,1051],{}," object works anywhere in your client code: components, composables, event handlers.",[586,1098,1100,1101,1104],{"id":1099},"minimum-level-minlevel","Minimum level (",[604,1102,1103],{},"minLevel",")",[535,1106,1107,1108,1111,1112,1115,1116,1115,1118,1115,1121,1124,1125,1128],{},"Use ",[604,1109,1110],{},"initLog({ minLevel: 'warn' })"," to keep the browser console quiet (warnings and errors only). Severity order: ",[604,1113,1114],{},"debug"," \u003C ",[604,1117,725],{},[604,1119,1120],{},"warn",[604,1122,1123],{},"error",". Default is ",[604,1126,1127],{},"'debug'"," (all levels).",[535,1130,1131,1132,1136,1137,1140,1141,1144,1145,1147],{},"For a ",[1133,1134,1135],"strong",{},"debug toggle"," without reloading, call ",[604,1138,1139],{},"setMinLevel('debug')"," or ",[604,1142,1143],{},"setMinLevel('warn')"," from ",[604,1146,641],{}," when the user opts in or out of verbose logs.",[535,1149,1150,1152,1153,1157],{},[604,1151,1103],{}," applies to both console output and ",[575,1154,1156],{"href":1155},"#sending-logs-to-the-server","server transport"," payloads.",[586,1159,1161],{"id":1160},"two-call-signatures","Two Call Signatures",[535,1163,1093,1164,1166],{},[604,1165,1051],{}," API accepts two forms depending on the context.",[1168,1169,1171],"h3",{"id":1170},"object-form-structured-context","Object Form (structured context)",[535,1173,1174,1175,695],{},"Pass an object to capture structured data, just like server-side ",[604,1176,1177],{},"log.set()",[596,1179,1182],{"className":598,"code":1180,"filename":1181,"language":601,"meta":602,"style":602},"log.info({ action: 'page_view', path: '\u002Fproducts', referrer: document.referrer })\n","pages\u002Fproducts.vue",[604,1183,1184],{"__ignoreMap":602},[607,1185,1186,1188,1190,1192,1194,1196,1198,1200,1202,1205,1207,1209,1211,1213,1215,1218,1220,1222,1225,1227,1230,1232,1235,1237],{"class":609,"line":610},[607,1187,1051],{"class":621},[607,1189,722],{"class":617},[607,1191,725],{"class":663},[607,1193,667],{"class":621},[607,1195,689],{"class":617},[607,1197,732],{"class":686},[607,1199,695],{"class":617},[607,1201,637],{"class":617},[607,1203,1204],{"class":640},"page_view",[607,1206,703],{"class":617},[607,1208,625],{"class":617},[607,1210,746],{"class":686},[607,1212,695],{"class":617},[607,1214,637],{"class":617},[607,1216,1217],{"class":640},"\u002Fproducts",[607,1219,703],{"class":617},[607,1221,625],{"class":617},[607,1223,1224],{"class":686}," referrer",[607,1226,695],{"class":617},[607,1228,1229],{"class":621}," document",[607,1231,722],{"class":617},[607,1233,1234],{"class":621},"referrer ",[607,1236,771],{"class":617},[607,1238,708],{"class":621},[596,1240,1245],{"className":1241,"code":1242,"filename":1243,"language":1244,"meta":602,"style":602},"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",[604,1246,1247],{"__ignoreMap":602},[607,1248,1249,1252,1254,1257,1260,1262,1265,1267,1269,1271,1273,1276,1278,1280,1282,1284,1287,1289,1292,1294],{"class":609,"line":610},[607,1250,1251],{"class":617},"[",[607,1253,700],{"class":621},[607,1255,1256],{"class":617},"]",[607,1258,1259],{"class":621}," info  ",[607,1261,689],{"class":617},[607,1263,1264],{"class":863}," action:",[607,1266,637],{"class":617},[607,1268,1204],{"class":640},[607,1270,703],{"class":617},[607,1272,625],{"class":640},[607,1274,1275],{"class":640}," path:",[607,1277,637],{"class":617},[607,1279,1217],{"class":640},[607,1281,703],{"class":617},[607,1283,625],{"class":640},[607,1285,1286],{"class":640}," referrer:",[607,1288,637],{"class":617},[607,1290,1291],{"class":640},"https:\u002F\u002Fgoogle.com",[607,1293,703],{"class":617},[607,1295,1296],{"class":640}," }\n",[1168,1298,1300],{"id":1299},"tag-message-form-quick-logs","Tag + Message Form (quick logs)",[535,1302,1303],{},"Pass a tag and a message for quick, readable logs:",[596,1305,1308],{"className":598,"code":1306,"filename":1307,"language":601,"meta":602,"style":602},"log.info('auth', 'User logged in')\n","composables\u002FuseAuth.ts",[604,1309,1310],{"__ignoreMap":602},[607,1311,1312,1314,1316,1318,1320,1322,1325,1327,1329,1331,1334,1336],{"class":609,"line":610},[607,1313,1051],{"class":621},[607,1315,722],{"class":617},[607,1317,725],{"class":663},[607,1319,667],{"class":621},[607,1321,703],{"class":617},[607,1323,1324],{"class":640},"auth",[607,1326,703],{"class":617},[607,1328,625],{"class":617},[607,1330,637],{"class":617},[607,1332,1333],{"class":640},"User logged in",[607,1335,703],{"class":617},[607,1337,708],{"class":621},[596,1339,1341],{"className":1241,"code":1340,"filename":1243,"language":1244,"meta":602,"style":602},"[auth] User logged in\n",[604,1342,1343],{"__ignoreMap":602},[607,1344,1345,1347,1349,1351],{"class":609,"line":610},[607,1346,1251],{"class":617},[607,1348,1324],{"class":621},[607,1350,1256],{"class":617},[607,1352,1353],{"class":621}," User logged in\n",[1168,1355,1357],{"id":1356},"available-levels","Available Levels",[535,1359,1360,1361,1364,1365,1364,1368,1371,1372,722],{},"Both forms support four levels: ",[604,1362,1363],{},"log.info()",", ",[604,1366,1367],{},"log.warn()",[604,1369,1370],{},"log.error()",", and ",[604,1373,1374],{},"log.debug()",[535,1376,1377,1378,1380,1381,1384,1385,1388,1389,1392,1393,722],{},"In the browser, ",[604,1379,1374],{}," is emitted with ",[604,1382,1383],{},"console.log"," (not ",[604,1386,1387],{},"console.debug",") so lines stay visible with the default DevTools ",[1133,1390,1391],{},"Info"," filter; the structured event still has ",[604,1394,1395],{},"level: 'debug'",[586,1397,1399],{"id":1398},"identity-context","Identity Context",[535,1401,1402,1403,695],{},"Track which user generated a log with ",[604,1404,1405],{},"setIdentity()",[596,1407,1409],{"className":598,"code":1408,"filename":1307,"language":601,"meta":602,"style":602},"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",[604,1410,1411,1439,1443,1449,1488,1492,1519,1524,1528,1533],{"__ignoreMap":602},[607,1412,1413,1415,1417,1420,1422,1425,1427,1429,1431,1433,1435,1437],{"class":609,"line":610},[607,1414,614],{"class":613},[607,1416,618],{"class":617},[607,1418,1419],{"class":621}," setIdentity",[607,1421,625],{"class":617},[607,1423,1424],{"class":621}," clearIdentity",[607,1426,625],{"class":617},[607,1428,628],{"class":621},[607,1430,631],{"class":617},[607,1432,634],{"class":613},[607,1434,637],{"class":617},[607,1436,641],{"class":640},[607,1438,644],{"class":617},[607,1440,1441],{"class":609,"line":647},[607,1442,651],{"emptyLinePlaceholder":650},[607,1444,1445],{"class":609,"line":654},[607,1446,1448],{"class":1447},"sHwdD","\u002F\u002F After login\n",[607,1450,1451,1454,1456,1458,1461,1463,1465,1468,1470,1472,1475,1477,1479,1482,1484,1486],{"class":609,"line":680},[607,1452,1453],{"class":663},"setIdentity",[607,1455,667],{"class":621},[607,1457,689],{"class":617},[607,1459,1460],{"class":686}," userId",[607,1462,695],{"class":617},[607,1464,637],{"class":617},[607,1466,1467],{"class":640},"usr_123",[607,1469,703],{"class":617},[607,1471,625],{"class":617},[607,1473,1474],{"class":686}," plan",[607,1476,695],{"class":617},[607,1478,637],{"class":617},[607,1480,1481],{"class":640},"pro",[607,1483,703],{"class":617},[607,1485,631],{"class":617},[607,1487,708],{"class":621},[607,1489,1490],{"class":609,"line":711},[607,1491,651],{"emptyLinePlaceholder":650},[607,1493,1494,1496,1498,1500,1502,1504,1506,1508,1510,1513,1515,1517],{"class":609,"line":716},[607,1495,1051],{"class":621},[607,1497,722],{"class":617},[607,1499,725],{"class":663},[607,1501,667],{"class":621},[607,1503,689],{"class":617},[607,1505,732],{"class":686},[607,1507,695],{"class":617},[607,1509,637],{"class":617},[607,1511,1512],{"class":640},"dashboard_view",[607,1514,703],{"class":617},[607,1516,631],{"class":617},[607,1518,708],{"class":621},[607,1520,1521],{"class":609,"line":768},[607,1522,1523],{"class":1447},"\u002F\u002F → { userId: 'usr_123', plan: 'pro', action: 'dashboard_view', ... }\n",[607,1525,1526],{"class":609,"line":913},[607,1527,651],{"emptyLinePlaceholder":650},[607,1529,1530],{"class":609,"line":957},[607,1531,1532],{"class":1447},"\u002F\u002F After logout\n",[607,1534,1535,1538],{"class":609,"line":966},[607,1536,1537],{"class":663},"clearIdentity",[607,1539,1540],{"class":621},"()\n",[535,1542,1543],{},"Identity fields are automatically merged into every log event until cleared. This lets you correlate browser events to specific users in your observability tools.",[586,1545,500],{"id":1546},"configuration",[535,1548,1549,1552],{},[604,1550,1551],{},"initLog()"," accepts the following options:",[1554,1555,1556,1572],"table",{},[1557,1558,1559],"thead",{},[1560,1561,1562,1566,1569],"tr",{},[1563,1564,1565],"th",{},"Option",[1563,1567,1568],{},"Default",[1563,1570,1571],{},"Description",[1573,1574,1575,1591,1605,1619,1640,1655],"tbody",{},[1560,1576,1577,1583,1588],{},[1578,1579,1580],"td",{},[604,1581,1582],{},"enabled",[1578,1584,1585],{},[604,1586,1587],{},"true",[1578,1589,1590],{},"Enable or disable all client logging",[1560,1592,1593,1598,1602],{},[1578,1594,1595],{},[604,1596,1597],{},"console",[1578,1599,1600],{},[604,1601,1587],{},[1578,1603,1604],{},"Output logs to the browser console",[1560,1606,1607,1612,1616],{},[1578,1608,1609],{},[604,1610,1611],{},"pretty",[1578,1613,1614],{},[604,1615,1587],{},[1578,1617,1618],{},"Use colored, formatted console output",[1560,1620,1621,1625,1629],{},[1578,1622,1623],{},[604,1624,1103],{},[1578,1626,1627],{},[604,1628,1127],{},[1578,1630,1631,1632,1115,1634,1115,1636,1115,1638],{},"Minimum severity: ",[604,1633,1114],{},[604,1635,725],{},[604,1637,1120],{},[604,1639,1123],{},[1560,1641,1642,1647,1652],{},[1578,1643,1644],{},[604,1645,1646],{},"service",[1578,1648,1649],{},[604,1650,1651],{},"'client'",[1578,1653,1654],{},"Service name included in every log event",[1560,1656,1657,1662,1665],{},[1578,1658,1659],{},[604,1660,1661],{},"transport",[1578,1663,1664],{},"-",[1578,1666,1667],{},"Send logs to a server endpoint (see below)",[596,1669,1672],{"className":598,"code":1670,"filename":1671,"language":601,"meta":602,"style":602},"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",[604,1673,1674,1683,1699,1708,1721,1740,1745],{"__ignoreMap":602},[607,1675,1676,1678,1680],{"class":609,"line":610},[607,1677,1028],{"class":663},[607,1679,667],{"class":621},[607,1681,1682],{"class":617},"{\n",[607,1684,1685,1688,1690,1692,1694,1696],{"class":609,"line":647},[607,1686,1687],{"class":686},"  service",[607,1689,695],{"class":617},[607,1691,637],{"class":617},[607,1693,700],{"class":640},[607,1695,703],{"class":617},[607,1697,1698],{"class":617},",\n",[607,1700,1701,1704,1706],{"class":609,"line":654},[607,1702,1703],{"class":686},"  transport",[607,1705,695],{"class":617},[607,1707,677],{"class":617},[607,1709,1710,1713,1715,1719],{"class":609,"line":680},[607,1711,1712],{"class":686},"    enabled",[607,1714,695],{"class":617},[607,1716,1718],{"class":1717},"sfNiH"," true",[607,1720,1698],{"class":617},[607,1722,1723,1726,1728,1730,1733,1735,1737],{"class":609,"line":711},[607,1724,1725],{"class":686},"    endpoint",[607,1727,695],{"class":617},[607,1729,637],{"class":617},[607,1731,1732],{"class":640},"\u002Fapi\u002F_evlog\u002Fingest",[607,1734,703],{"class":617},[607,1736,625],{"class":617},[607,1738,1739],{"class":1447}," \u002F\u002F default endpoint\n",[607,1741,1742],{"class":609,"line":716},[607,1743,1744],{"class":617},"  },\n",[607,1746,1747,1749],{"class":609,"line":768},[607,1748,771],{"class":617},[607,1750,708],{"class":621},[1752,1753,1755,1364,1757,1371,1759,1761,1762,1764],"callout",{"color":725,"icon":1754},"i-lucide-info",[604,1756,1582],{},[604,1758,1597],{},[604,1760,1611],{}," all default to ",[604,1763,1587],{},". You only need to set them if you want to change the defaults.",[586,1766,1768],{"id":1767},"sending-logs-to-the-server","Sending Logs to the Server",[535,1770,1771],{},"By default, client logs only appear in the browser console. To persist them, you have two options:",[1168,1773,1775],{"id":1774},"built-in-transport","Built-in Transport",[535,1777,1778,1779,1781,1782,1785,1786,1789],{},"The simplest approach is to enable the built-in transport in ",[604,1780,1551],{},". Each log is sent individually via ",[604,1783,1784],{},"fetch"," with ",[604,1787,1788],{},"keepalive: true",". Good for low-volume apps.",[593,1791,1792,1911,2111],{},[596,1793,1795],{"className":598,"code":1794,"filename":600,"language":601,"meta":602,"style":602},"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",[604,1796,1797,1815,1819,1835,1843,1858,1867,1878,1893,1898,1905],{"__ignoreMap":602},[607,1798,1799,1801,1803,1805,1807,1809,1811,1813],{"class":609,"line":610},[607,1800,614],{"class":613},[607,1802,618],{"class":617},[607,1804,622],{"class":621},[607,1806,631],{"class":617},[607,1808,634],{"class":613},[607,1810,637],{"class":617},[607,1812,641],{"class":640},[607,1814,644],{"class":617},[607,1816,1817],{"class":609,"line":647},[607,1818,651],{"emptyLinePlaceholder":650},[607,1820,1821,1823,1825,1827,1829,1831,1833],{"class":609,"line":654},[607,1822,657],{"class":613},[607,1824,660],{"class":613},[607,1826,664],{"class":663},[607,1828,667],{"class":621},[607,1830,670],{"class":617},[607,1832,674],{"class":673},[607,1834,677],{"class":617},[607,1836,1837,1839,1841],{"class":609,"line":680},[607,1838,683],{"class":663},[607,1840,667],{"class":686},[607,1842,1682],{"class":617},[607,1844,1845,1848,1850,1852,1854,1856],{"class":609,"line":711},[607,1846,1847],{"class":686},"    service",[607,1849,695],{"class":617},[607,1851,637],{"class":617},[607,1853,700],{"class":640},[607,1855,703],{"class":617},[607,1857,1698],{"class":617},[607,1859,1860,1863,1865],{"class":609,"line":716},[607,1861,1862],{"class":686},"    transport",[607,1864,695],{"class":617},[607,1866,677],{"class":617},[607,1868,1869,1872,1874,1876],{"class":609,"line":768},[607,1870,1871],{"class":686},"      enabled",[607,1873,695],{"class":617},[607,1875,1718],{"class":1717},[607,1877,1698],{"class":617},[607,1879,1880,1883,1885,1887,1889,1891],{"class":609,"line":913},[607,1881,1882],{"class":686},"      endpoint",[607,1884,695],{"class":617},[607,1886,637],{"class":617},[607,1888,1732],{"class":640},[607,1890,703],{"class":617},[607,1892,1698],{"class":617},[607,1894,1895],{"class":609,"line":957},[607,1896,1897],{"class":617},"    },\n",[607,1899,1900,1903],{"class":609,"line":966},[607,1901,1902],{"class":617},"  }",[607,1904,708],{"class":686},[607,1906,1907,1909],{"class":609,"line":971},[607,1908,771],{"class":617},[607,1910,708],{"class":621},[596,1912,1917],{"className":1913,"code":1914,"filename":1915,"language":1916,"meta":602,"style":602},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { EvlogProvider } from 'evlog\u002Fnext\u002Fclient'\n\nexport default function Layout({ children }: { children: React.ReactNode }) {\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>\n        \u003CEvlogProvider service=\"web\" transport={{ enabled: true, endpoint: '\u002Fapi\u002F_evlog\u002Fingest' }}>\n          {children}\n        \u003C\u002FEvlogProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n","app\u002Flayout.tsx (Next.js)","tsx",[604,1918,1919,1939,1943,1976,1983,2008,2018,2065,2074,2083,2092,2101,2106],{"__ignoreMap":602},[607,1920,1921,1923,1925,1928,1930,1932,1934,1937],{"class":609,"line":610},[607,1922,614],{"class":613},[607,1924,618],{"class":617},[607,1926,1927],{"class":621}," EvlogProvider",[607,1929,631],{"class":617},[607,1931,634],{"class":613},[607,1933,637],{"class":617},[607,1935,1936],{"class":640},"evlog\u002Fnext\u002Fclient",[607,1938,644],{"class":617},[607,1940,1941],{"class":609,"line":647},[607,1942,651],{"emptyLinePlaceholder":650},[607,1944,1945,1947,1949,1951,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974],{"class":609,"line":654},[607,1946,657],{"class":613},[607,1948,660],{"class":613},[607,1950,841],{"class":673},[607,1952,1953],{"class":663}," Layout",[607,1955,847],{"class":617},[607,1957,851],{"class":850},[607,1959,854],{"class":617},[607,1961,618],{"class":617},[607,1963,851],{"class":686},[607,1965,695],{"class":617},[607,1967,864],{"class":863},[607,1969,722],{"class":617},[607,1971,869],{"class":863},[607,1973,872],{"class":617},[607,1975,677],{"class":617},[607,1977,1978,1980],{"class":609,"line":680},[607,1979,974],{"class":613},[607,1981,1982],{"class":686}," (\n",[607,1984,1985,1988,1991,1994,1997,2000,2003,2005],{"class":609,"line":711},[607,1986,1987],{"class":617},"    \u003C",[607,1989,1990],{"class":686},"html",[607,1992,1993],{"class":673}," lang",[607,1995,1996],{"class":617},"=",[607,1998,1999],{"class":617},"\"",[607,2001,2002],{"class":640},"en",[607,2004,1999],{"class":617},[607,2006,2007],{"class":617},">\n",[607,2009,2010,2013,2016],{"class":609,"line":716},[607,2011,2012],{"class":617},"      \u003C",[607,2014,2015],{"class":686},"body",[607,2017,2007],{"class":617},[607,2019,2020,2023,2026,2028,2030,2032,2034,2036,2039,2042,2045,2047,2049,2051,2054,2056,2058,2060,2062],{"class":609,"line":768},[607,2021,2022],{"class":617},"        \u003C",[607,2024,2025],{"class":863},"EvlogProvider",[607,2027,692],{"class":673},[607,2029,1996],{"class":617},[607,2031,1999],{"class":617},[607,2033,700],{"class":640},[607,2035,1999],{"class":617},[607,2037,2038],{"class":673}," transport",[607,2040,2041],{"class":617},"={{",[607,2043,2044],{"class":686}," enabled",[607,2046,695],{"class":617},[607,2048,1718],{"class":1717},[607,2050,625],{"class":617},[607,2052,2053],{"class":686}," endpoint",[607,2055,695],{"class":617},[607,2057,637],{"class":617},[607,2059,1732],{"class":640},[607,2061,703],{"class":617},[607,2063,2064],{"class":617}," }}>\n",[607,2066,2067,2070,2072],{"class":609,"line":913},[607,2068,2069],{"class":617},"          {",[607,2071,982],{"class":621},[607,2073,991],{"class":617},[607,2075,2076,2079,2081],{"class":609,"line":957},[607,2077,2078],{"class":617},"        \u003C\u002F",[607,2080,2025],{"class":863},[607,2082,2007],{"class":617},[607,2084,2085,2088,2090],{"class":609,"line":966},[607,2086,2087],{"class":617},"      \u003C\u002F",[607,2089,2015],{"class":686},[607,2091,2007],{"class":617},[607,2093,2094,2097,2099],{"class":609,"line":971},[607,2095,2096],{"class":617},"    \u003C\u002F",[607,2098,1990],{"class":686},[607,2100,2007],{"class":617},[607,2102,2103],{"class":609,"line":988},[607,2104,2105],{"class":686},"  )\n",[607,2107,2109],{"class":609,"line":2108},13,[607,2110,991],{"class":617},[596,2112,2114],{"className":598,"code":2113,"filename":995,"language":601,"meta":602,"style":602},"import { initLog } from 'evlog\u002Fclient'\n\ninitLog({\n  service: 'web',\n  transport: {\n    enabled: true,\n    endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n  },\n})\n",[604,2115,2116,2134,2138,2146,2160,2168,2178,2192,2196],{"__ignoreMap":602},[607,2117,2118,2120,2122,2124,2126,2128,2130,2132],{"class":609,"line":610},[607,2119,614],{"class":613},[607,2121,618],{"class":617},[607,2123,622],{"class":621},[607,2125,631],{"class":617},[607,2127,634],{"class":613},[607,2129,637],{"class":617},[607,2131,641],{"class":640},[607,2133,644],{"class":617},[607,2135,2136],{"class":609,"line":647},[607,2137,651],{"emptyLinePlaceholder":650},[607,2139,2140,2142,2144],{"class":609,"line":654},[607,2141,1028],{"class":663},[607,2143,667],{"class":621},[607,2145,1682],{"class":617},[607,2147,2148,2150,2152,2154,2156,2158],{"class":609,"line":680},[607,2149,1687],{"class":686},[607,2151,695],{"class":617},[607,2153,637],{"class":617},[607,2155,700],{"class":640},[607,2157,703],{"class":617},[607,2159,1698],{"class":617},[607,2161,2162,2164,2166],{"class":609,"line":711},[607,2163,1703],{"class":686},[607,2165,695],{"class":617},[607,2167,677],{"class":617},[607,2169,2170,2172,2174,2176],{"class":609,"line":716},[607,2171,1712],{"class":686},[607,2173,695],{"class":617},[607,2175,1718],{"class":1717},[607,2177,1698],{"class":617},[607,2179,2180,2182,2184,2186,2188,2190],{"class":609,"line":768},[607,2181,1725],{"class":686},[607,2183,695],{"class":617},[607,2185,637],{"class":617},[607,2187,1732],{"class":640},[607,2189,703],{"class":617},[607,2191,1698],{"class":617},[607,2193,2194],{"class":609,"line":913},[607,2195,1744],{"class":617},[607,2197,2198,2200],{"class":609,"line":957},[607,2199,771],{"class":617},[607,2201,708],{"class":621},[1752,2203,2204,2205,2209],{"color":725,"icon":1754},"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 ",[575,2206,2208],{"href":2207},"\u002Fextend\u002Fdrain-pipeline#server-endpoint","HTTP drain"," docs for Express and Hono examples.",[1168,2211,2213],{"id":2212},"http-drain-pipeline","HTTP drain pipeline",[535,2215,2216,2217,2220],{},"For higher volume or when you need batching, retries, and page-exit flushing, use the HTTP drain (",[604,2218,2219],{},"evlog\u002Fhttp","). This works with any frontend and has no framework dependency.",[593,2222,2223,2451],{},[596,2224,2226],{"className":598,"code":2225,"filename":600,"language":601,"meta":602,"style":602},"import { initLogger, log } from 'evlog'\nimport { createHttpLogDrain } from 'evlog\u002Fhttp'\n\nexport default defineNuxtPlugin(() => {\n  const drain = createHttpLogDrain({\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",[604,2227,2228,2252,2271,2275,2291,2308,2330,2339,2369,2388,2392,2398,2402,2417,2444],{"__ignoreMap":602},[607,2229,2230,2232,2234,2237,2239,2241,2243,2245,2247,2250],{"class":609,"line":610},[607,2231,614],{"class":613},[607,2233,618],{"class":617},[607,2235,2236],{"class":621}," initLogger",[607,2238,625],{"class":617},[607,2240,628],{"class":621},[607,2242,631],{"class":617},[607,2244,634],{"class":613},[607,2246,637],{"class":617},[607,2248,2249],{"class":640},"evlog",[607,2251,644],{"class":617},[607,2253,2254,2256,2258,2261,2263,2265,2267,2269],{"class":609,"line":647},[607,2255,614],{"class":613},[607,2257,618],{"class":617},[607,2259,2260],{"class":621}," createHttpLogDrain",[607,2262,631],{"class":617},[607,2264,634],{"class":613},[607,2266,637],{"class":617},[607,2268,2219],{"class":640},[607,2270,644],{"class":617},[607,2272,2273],{"class":609,"line":654},[607,2274,651],{"emptyLinePlaceholder":650},[607,2276,2277,2279,2281,2283,2285,2287,2289],{"class":609,"line":680},[607,2278,657],{"class":613},[607,2280,660],{"class":613},[607,2282,664],{"class":663},[607,2284,667],{"class":621},[607,2286,670],{"class":617},[607,2288,674],{"class":673},[607,2290,677],{"class":617},[607,2292,2293,2296,2299,2302,2304,2306],{"class":609,"line":711},[607,2294,2295],{"class":673},"  const",[607,2297,2298],{"class":621}," drain",[607,2300,2301],{"class":617}," =",[607,2303,2260],{"class":663},[607,2305,667],{"class":686},[607,2307,1682],{"class":617},[607,2309,2310,2313,2315,2317,2319,2321,2323,2325,2327],{"class":609,"line":716},[607,2311,2312],{"class":686},"    drain",[607,2314,695],{"class":617},[607,2316,618],{"class":617},[607,2318,2053],{"class":686},[607,2320,695],{"class":617},[607,2322,637],{"class":617},[607,2324,1732],{"class":640},[607,2326,703],{"class":617},[607,2328,2329],{"class":617}," },\n",[607,2331,2332,2335,2337],{"class":609,"line":768},[607,2333,2334],{"class":686},"    pipeline",[607,2336,695],{"class":617},[607,2338,677],{"class":617},[607,2340,2341,2344,2346,2348,2351,2353,2357,2359,2362,2364,2367],{"class":609,"line":913},[607,2342,2343],{"class":686},"      batch",[607,2345,695],{"class":617},[607,2347,618],{"class":617},[607,2349,2350],{"class":686}," size",[607,2352,695],{"class":617},[607,2354,2356],{"class":2355},"sbssI"," 25",[607,2358,625],{"class":617},[607,2360,2361],{"class":686}," intervalMs",[607,2363,695],{"class":617},[607,2365,2366],{"class":2355}," 2000",[607,2368,2329],{"class":617},[607,2370,2371,2374,2376,2378,2381,2383,2386],{"class":609,"line":957},[607,2372,2373],{"class":686},"      retry",[607,2375,695],{"class":617},[607,2377,618],{"class":617},[607,2379,2380],{"class":686}," maxAttempts",[607,2382,695],{"class":617},[607,2384,2385],{"class":2355}," 2",[607,2387,2329],{"class":617},[607,2389,2390],{"class":609,"line":966},[607,2391,1897],{"class":617},[607,2393,2394,2396],{"class":609,"line":971},[607,2395,1902],{"class":617},[607,2397,708],{"class":686},[607,2399,2400],{"class":609,"line":988},[607,2401,651],{"emptyLinePlaceholder":650},[607,2403,2404,2407,2409,2411,2413,2415],{"class":609,"line":2108},[607,2405,2406],{"class":663},"  initLogger",[607,2408,667],{"class":686},[607,2410,689],{"class":617},[607,2412,2298],{"class":621},[607,2414,631],{"class":617},[607,2416,708],{"class":686},[607,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442],{"class":609,"line":2419},14,[607,2421,719],{"class":621},[607,2423,722],{"class":617},[607,2425,725],{"class":663},[607,2427,667],{"class":686},[607,2429,689],{"class":617},[607,2431,732],{"class":686},[607,2433,695],{"class":617},[607,2435,637],{"class":617},[607,2437,739],{"class":640},[607,2439,703],{"class":617},[607,2441,631],{"class":617},[607,2443,708],{"class":686},[607,2445,2447,2449],{"class":609,"line":2446},15,[607,2448,771],{"class":617},[607,2450,708],{"class":621},[596,2452,2454],{"className":598,"code":2453,"filename":995,"language":601,"meta":602,"style":602},"import { initLogger, log } from 'evlog'\nimport { createHttpLogDrain } from 'evlog\u002Fhttp'\n\nconst drain = createHttpLogDrain({\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",[604,2455,2456,2478,2496,2500,2516,2538,2547,2572,2589,2593,2599,2603,2618],{"__ignoreMap":602},[607,2457,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476],{"class":609,"line":610},[607,2459,614],{"class":613},[607,2461,618],{"class":617},[607,2463,2236],{"class":621},[607,2465,625],{"class":617},[607,2467,628],{"class":621},[607,2469,631],{"class":617},[607,2471,634],{"class":613},[607,2473,637],{"class":617},[607,2475,2249],{"class":640},[607,2477,644],{"class":617},[607,2479,2480,2482,2484,2486,2488,2490,2492,2494],{"class":609,"line":647},[607,2481,614],{"class":613},[607,2483,618],{"class":617},[607,2485,2260],{"class":621},[607,2487,631],{"class":617},[607,2489,634],{"class":613},[607,2491,637],{"class":617},[607,2493,2219],{"class":640},[607,2495,644],{"class":617},[607,2497,2498],{"class":609,"line":654},[607,2499,651],{"emptyLinePlaceholder":650},[607,2501,2502,2505,2508,2510,2512,2514],{"class":609,"line":680},[607,2503,2504],{"class":673},"const",[607,2506,2507],{"class":621}," drain ",[607,2509,1996],{"class":617},[607,2511,2260],{"class":663},[607,2513,667],{"class":621},[607,2515,1682],{"class":617},[607,2517,2518,2521,2523,2525,2527,2529,2531,2534,2536],{"class":609,"line":711},[607,2519,2520],{"class":686},"  drain",[607,2522,695],{"class":617},[607,2524,618],{"class":617},[607,2526,2053],{"class":686},[607,2528,695],{"class":617},[607,2530,637],{"class":617},[607,2532,2533],{"class":640},"https:\u002F\u002Flogs.example.com\u002Fv1\u002Fingest",[607,2535,703],{"class":617},[607,2537,2329],{"class":617},[607,2539,2540,2543,2545],{"class":609,"line":716},[607,2541,2542],{"class":686},"  pipeline",[607,2544,695],{"class":617},[607,2546,677],{"class":617},[607,2548,2549,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570],{"class":609,"line":768},[607,2550,2551],{"class":686},"    batch",[607,2553,695],{"class":617},[607,2555,618],{"class":617},[607,2557,2350],{"class":686},[607,2559,695],{"class":617},[607,2561,2356],{"class":2355},[607,2563,625],{"class":617},[607,2565,2361],{"class":686},[607,2567,695],{"class":617},[607,2569,2366],{"class":2355},[607,2571,2329],{"class":617},[607,2573,2574,2577,2579,2581,2583,2585,2587],{"class":609,"line":913},[607,2575,2576],{"class":686},"    retry",[607,2578,695],{"class":617},[607,2580,618],{"class":617},[607,2582,2380],{"class":686},[607,2584,695],{"class":617},[607,2586,2385],{"class":2355},[607,2588,2329],{"class":617},[607,2590,2591],{"class":609,"line":957},[607,2592,1744],{"class":617},[607,2594,2595,2597],{"class":609,"line":966},[607,2596,771],{"class":617},[607,2598,708],{"class":621},[607,2600,2601],{"class":609,"line":971},[607,2602,651],{"emptyLinePlaceholder":650},[607,2604,2605,2608,2610,2612,2614,2616],{"class":609,"line":988},[607,2606,2607],{"class":663},"initLogger",[607,2609,667],{"class":621},[607,2611,689],{"class":617},[607,2613,2507],{"class":621},[607,2615,771],{"class":617},[607,2617,708],{"class":621},[607,2619,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642],{"class":609,"line":2108},[607,2621,1051],{"class":621},[607,2623,722],{"class":617},[607,2625,725],{"class":663},[607,2627,667],{"class":621},[607,2629,689],{"class":617},[607,2631,732],{"class":686},[607,2633,695],{"class":617},[607,2635,637],{"class":617},[607,2637,739],{"class":640},[607,2639,703],{"class":617},[607,2641,631],{"class":617},[607,2643,708],{"class":621},[535,2645,2646],{},"The HTTP drain automatically:",[550,2648,2649,2655,2661],{},[553,2650,2651,2654],{},[1133,2652,2653],{},"Batches"," events by size and time interval",[553,2656,2657,2660],{},[1133,2658,2659],{},"Retries"," failed sends with exponential backoff",[553,2662,2663,2666,2667,2670],{},[1133,2664,2665],{},"Flushes"," buffered events via ",[604,2668,2669],{},"sendBeacon"," when the page becomes hidden (tab switch, navigation, close)",[1752,2672,2675,2676,2678],{"color":2673,"icon":2674},"neutral","i-lucide-arrow-right","See the ",[575,2677,2208],{"href":493}," adapter docs for full configuration reference, authentication, and server endpoint examples.",[586,2680,2682],{"id":2681},"next-steps","Next Steps",[550,2684,2685,2690,2696],{},[553,2686,2687,2689],{},[575,2688,2208],{"href":493}," - Batching, retry, and sendBeacon fallback",[553,2691,2692,2695],{},[575,2693,2694],{"href":493},"Pipeline"," - Advanced pipeline configuration",[553,2697,2698,2700],{},[575,2699,49],{"href":50}," - Surface client errors with actionable context",[2702,2703,2704],"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":602,"searchDepth":647,"depth":647,"links":2706},[2707,2708,2710,2715,2716,2717,2721],{"id":588,"depth":647,"text":24},{"id":1099,"depth":647,"text":2709},"Minimum level (minLevel)",{"id":1160,"depth":647,"text":1161,"children":2711},[2712,2713,2714],{"id":1170,"depth":654,"text":1171},{"id":1299,"depth":654,"text":1300},{"id":1356,"depth":654,"text":1357},{"id":1398,"depth":647,"text":1399},{"id":1546,"depth":647,"text":500},{"id":1767,"depth":647,"text":1768,"children":2718},[2719,2720],{"id":1774,"depth":654,"text":1775},{"id":2212,"depth":654,"text":2213},{"id":2681,"depth":647,"text":2682},"Capture browser events with structured logging. Same API as the server, with automatic console styling, user identity context, and optional server transport.","md",[2725,2728],{"label":2208,"icon":2726,"to":493,"color":2673,"variant":2727},"i-lucide-globe","subtle",{"label":44,"icon":47,"to":45,"color":2673,"variant":2727},{},{"icon":316},{"title":313,"description":2722},"soGOEXQ4XAr17_mahnK9aNsCipRA3_XqQHyDWWTVemU",[2734,2736],{"title":305,"path":310,"stem":311,"description":2735,"children":-1},"[object Object]",{"title":128,"path":324,"stem":325,"description":2737,"icon":140,"children":-1},"Capture token usage, tool calls, model info, and streaming metrics from the Vercel AI SDK into wide events. Wrap your model, get the rest free.",1786793862744]