[{"data":1,"prerenderedAt":2737},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-client-logging":528,"-use-cases-client-logging-surround":2732},[4,29,76,122,304,435,496],{"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,431],{"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},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers",{"title":432,"path":433,"stem":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":436,"path":437,"stem":438,"children":439,"page":28},"Extend","\u002Fextend","6.extend",[440,444,449,454,458,463,467,471,476,481,486,491],{"title":128,"path":441,"stem":442,"icon":443},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":445,"path":446,"stem":447,"icon":448},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":450,"path":451,"stem":452,"icon":453},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":455,"path":456,"stem":457,"icon":448},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":459,"path":460,"stem":461,"icon":462},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":464,"stem":465,"icon":466},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":468,"path":469,"stem":470},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":472,"path":473,"stem":474,"icon":475},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers","i-lucide-sparkles",{"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,"icon":495},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":424,"path":497,"stem":498,"children":499,"page":28},"\u002Freference","7.reference",[500,504,507,512,516,520,524],{"title":501,"path":502,"stem":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration",{"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},"evlog vs pino, winston, consola","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers",{"title":521,"path":522,"stem":523,"icon":475},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":525,"path":526,"stem":527},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":529,"title":313,"body":530,"description":2721,"extension":2722,"links":2723,"meta":2728,"navigation":2729,"path":314,"seo":2730,"stem":315,"__hash__":2731},"docs\u002F5.use-cases\u002F1.client-logging.md",{"type":531,"value":532,"toc":2704},"minimark",[533,537,540,584,588,591,1090,1096,1104,1128,1147,1157,1161,1166,1171,1177,1238,1296,1300,1303,1337,1353,1357,1374,1395,1399,1405,1540,1543,1546,1552,1667,1750,1764,1768,1771,1775,1789,2201,2209,2213,2220,2643,2646,2670,2678,2682,2700],[534,535,536],"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.",[538,539],"client-server-beacon",{},[541,542,545,548,570],"prompt",{":actions":543,"description":544,"icon":316},"[\"copy\",\"cursor\",\"claude\"]","Ship browser logs to my server",[534,546,547],{},"Ship browser logs to my server with evlog client logging.",[549,550,551,555,558,561,564,567],"ul",{},[552,553,554],"li",{},"Detect my framework (Nuxt, Next.js, SvelteKit, etc.) and pick the matching client entrypoint",[552,556,557],{},"Call initLog({ service: 'web' }) once at app start",[552,559,560],{},"Use log.info \u002F log.warn \u002F log.error in components, composables, and event handlers",[552,562,563],{},"Set user identity with setIdentity({ userId, email }) after login, clearIdentity() on logout",[552,565,566],{},"Enable transport in the framework config so logs POST to \u002Fapi\u002F_evlog\u002Fingest in batches",[552,568,569],{},"On the server, evlog auto-runs the drain pipeline on transported events with source: 'client'",[534,571,572,573,579,580],{},"Docs: ",[574,575,576],"a",{"href":576,"rel":577},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Fclient-logging",[578],"nofollow","\nHTTP transport: ",[574,581,582],{"href":582,"rel":583},"https:\u002F\u002Fwww.evlog.dev\u002Fextend\u002Fdrain-pipeline",[578],[585,586,24],"h2",{"id":587},"quick-start",[534,589,590],{},"evlog provides a client-side logging API that works in any browser environment:",[592,593,594,773,991],"code-group",{},[595,596,602],"pre",{"className":597,"code":598,"filename":599,"language":600,"meta":601,"style":601},"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","",[603,604,605,644,651,677,708,713,765],"code",{"__ignoreMap":601},[606,607,610,614,618,622,625,628,631,634,637,641],"span",{"class":608,"line":609},"line",1,[606,611,613],{"class":612},"s7zQu","import",[606,615,617],{"class":616},"sMK4o"," {",[606,619,621],{"class":620},"sTEyZ"," initLog",[606,623,624],{"class":616},",",[606,626,627],{"class":620}," log",[606,629,630],{"class":616}," }",[606,632,633],{"class":612}," from",[606,635,636],{"class":616}," '",[606,638,640],{"class":639},"sfazB","evlog\u002Fclient",[606,642,643],{"class":616},"'\n",[606,645,647],{"class":608,"line":646},2,[606,648,650],{"emptyLinePlaceholder":649},true,"\n",[606,652,654,657,660,664,667,670,674],{"class":608,"line":653},3,[606,655,656],{"class":612},"export",[606,658,659],{"class":612}," default",[606,661,663],{"class":662},"s2Zo4"," defineNuxtPlugin",[606,665,666],{"class":620},"(",[606,668,669],{"class":616},"()",[606,671,673],{"class":672},"spNyl"," =>",[606,675,676],{"class":616}," {\n",[606,678,680,683,686,689,692,695,697,700,703,705],{"class":608,"line":679},4,[606,681,682],{"class":662},"  initLog",[606,684,666],{"class":685},"swJcz",[606,687,688],{"class":616},"{",[606,690,691],{"class":685}," service",[606,693,694],{"class":616},":",[606,696,636],{"class":616},[606,698,699],{"class":639},"web",[606,701,702],{"class":616},"'",[606,704,630],{"class":616},[606,706,707],{"class":685},")\n",[606,709,711],{"class":608,"line":710},5,[606,712,650],{"emptyLinePlaceholder":649},[606,714,716,719,722,725,727,729,732,734,736,739,741,743,746,748,751,753,756,758,761,763],{"class":608,"line":715},6,[606,717,718],{"class":620},"  log",[606,720,721],{"class":616},".",[606,723,724],{"class":662},"info",[606,726,666],{"class":685},[606,728,688],{"class":616},[606,730,731],{"class":685}," action",[606,733,694],{"class":616},[606,735,636],{"class":616},[606,737,738],{"class":639},"app_init",[606,740,702],{"class":616},[606,742,624],{"class":616},[606,744,745],{"class":685}," path",[606,747,694],{"class":616},[606,749,750],{"class":620}," window",[606,752,721],{"class":616},[606,754,755],{"class":620},"location",[606,757,721],{"class":616},[606,759,760],{"class":620},"pathname",[606,762,630],{"class":616},[606,764,707],{"class":685},[606,766,768,771],{"class":608,"line":767},7,[606,769,770],{"class":616},"}",[606,772,707],{"class":620},[595,774,777],{"className":597,"code":775,"filename":776,"language":600,"meta":601,"style":601},"'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)",[603,778,779,788,808,830,834,874,887,910,954,963,968,985],{"__ignoreMap":601},[606,780,781,783,786],{"class":608,"line":609},[606,782,702],{"class":616},[606,784,785],{"class":639},"use client",[606,787,643],{"class":616},[606,789,790,792,794,797,799,801,803,806],{"class":608,"line":646},[606,791,613],{"class":612},[606,793,617],{"class":616},[606,795,796],{"class":620}," useEffect",[606,798,630],{"class":616},[606,800,633],{"class":612},[606,802,636],{"class":616},[606,804,805],{"class":639},"react",[606,807,643],{"class":616},[606,809,810,812,814,816,818,820,822,824,826,828],{"class":608,"line":653},[606,811,613],{"class":612},[606,813,617],{"class":616},[606,815,621],{"class":620},[606,817,624],{"class":616},[606,819,627],{"class":620},[606,821,630],{"class":616},[606,823,633],{"class":612},[606,825,636],{"class":616},[606,827,640],{"class":639},[606,829,643],{"class":616},[606,831,832],{"class":608,"line":679},[606,833,650],{"emptyLinePlaceholder":649},[606,835,836,838,841,844,847,851,854,856,858,860,864,866,869,872],{"class":608,"line":710},[606,837,656],{"class":612},[606,839,840],{"class":672}," function",[606,842,843],{"class":662}," LogProvider",[606,845,846],{"class":616},"({",[606,848,850],{"class":849},"sHdIc"," children",[606,852,853],{"class":616}," }:",[606,855,617],{"class":616},[606,857,850],{"class":685},[606,859,694],{"class":616},[606,861,863],{"class":862},"sBMFI"," React",[606,865,721],{"class":616},[606,867,868],{"class":862},"ReactNode",[606,870,871],{"class":616}," })",[606,873,676],{"class":616},[606,875,876,879,881,883,885],{"class":608,"line":715},[606,877,878],{"class":662},"  useEffect",[606,880,666],{"class":685},[606,882,669],{"class":616},[606,884,673],{"class":672},[606,886,676],{"class":616},[606,888,889,892,894,896,898,900,902,904,906,908],{"class":608,"line":767},[606,890,891],{"class":662},"    initLog",[606,893,666],{"class":685},[606,895,688],{"class":616},[606,897,691],{"class":685},[606,899,694],{"class":616},[606,901,636],{"class":616},[606,903,699],{"class":639},[606,905,702],{"class":616},[606,907,630],{"class":616},[606,909,707],{"class":685},[606,911,913,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952],{"class":608,"line":912},8,[606,914,915],{"class":620},"    log",[606,917,721],{"class":616},[606,919,724],{"class":662},[606,921,666],{"class":685},[606,923,688],{"class":616},[606,925,731],{"class":685},[606,927,694],{"class":616},[606,929,636],{"class":616},[606,931,738],{"class":639},[606,933,702],{"class":616},[606,935,624],{"class":616},[606,937,745],{"class":685},[606,939,694],{"class":616},[606,941,750],{"class":620},[606,943,721],{"class":616},[606,945,755],{"class":620},[606,947,721],{"class":616},[606,949,760],{"class":620},[606,951,630],{"class":616},[606,953,707],{"class":685},[606,955,957,960],{"class":608,"line":956},9,[606,958,959],{"class":616},"  },",[606,961,962],{"class":685}," [])\n",[606,964,966],{"class":608,"line":965},10,[606,967,650],{"emptyLinePlaceholder":649},[606,969,971,974,977,979,982],{"class":608,"line":970},11,[606,972,973],{"class":612},"  return",[606,975,976],{"class":685}," \u003C>",[606,978,688],{"class":616},[606,980,981],{"class":620},"children",[606,983,984],{"class":616},"}\u003C\u002F>\n",[606,986,988],{"class":608,"line":987},12,[606,989,990],{"class":616},"}\n",[595,992,995],{"className":597,"code":993,"filename":994,"language":600,"meta":601,"style":601},"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)",[603,996,997,1019,1023,1046],{"__ignoreMap":601},[606,998,999,1001,1003,1005,1007,1009,1011,1013,1015,1017],{"class":608,"line":609},[606,1000,613],{"class":612},[606,1002,617],{"class":616},[606,1004,621],{"class":620},[606,1006,624],{"class":616},[606,1008,627],{"class":620},[606,1010,630],{"class":616},[606,1012,633],{"class":612},[606,1014,636],{"class":616},[606,1016,640],{"class":639},[606,1018,643],{"class":616},[606,1020,1021],{"class":608,"line":646},[606,1022,650],{"emptyLinePlaceholder":649},[606,1024,1025,1028,1030,1032,1034,1036,1038,1040,1042,1044],{"class":608,"line":653},[606,1026,1027],{"class":662},"initLog",[606,1029,666],{"class":620},[606,1031,688],{"class":616},[606,1033,691],{"class":685},[606,1035,694],{"class":616},[606,1037,636],{"class":616},[606,1039,699],{"class":639},[606,1041,702],{"class":616},[606,1043,630],{"class":616},[606,1045,707],{"class":620},[606,1047,1048,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1086,1088],{"class":608,"line":679},[606,1049,1050],{"class":620},"log",[606,1052,721],{"class":616},[606,1054,724],{"class":662},[606,1056,666],{"class":620},[606,1058,688],{"class":616},[606,1060,731],{"class":685},[606,1062,694],{"class":616},[606,1064,636],{"class":616},[606,1066,738],{"class":639},[606,1068,702],{"class":616},[606,1070,624],{"class":616},[606,1072,745],{"class":685},[606,1074,694],{"class":616},[606,1076,750],{"class":620},[606,1078,721],{"class":616},[606,1080,755],{"class":620},[606,1082,721],{"class":616},[606,1084,1085],{"class":620},"pathname ",[606,1087,770],{"class":616},[606,1089,707],{"class":620},[534,1091,1092,1093,1095],{},"The ",[603,1094,1050],{}," object works anywhere in your client code: components, composables, event handlers.",[585,1097,1099,1100,1103],{"id":1098},"minimum-level-minlevel","Minimum level (",[603,1101,1102],{},"minLevel",")",[534,1105,1106,1107,1110,1111,1114,1115,1114,1117,1114,1120,1123,1124,1127],{},"Use ",[603,1108,1109],{},"initLog({ minLevel: 'warn' })"," to keep the browser console quiet (warnings and errors only). Severity order: ",[603,1112,1113],{},"debug"," \u003C ",[603,1116,724],{},[603,1118,1119],{},"warn",[603,1121,1122],{},"error",". Default is ",[603,1125,1126],{},"'debug'"," (all levels).",[534,1129,1130,1131,1135,1136,1139,1140,1143,1144,1146],{},"For a ",[1132,1133,1134],"strong",{},"debug toggle"," without reloading, call ",[603,1137,1138],{},"setMinLevel('debug')"," or ",[603,1141,1142],{},"setMinLevel('warn')"," from ",[603,1145,640],{}," when the user opts in or out of verbose logs.",[534,1148,1149,1151,1152,1156],{},[603,1150,1102],{}," applies to both console output and ",[574,1153,1155],{"href":1154},"#sending-logs-to-the-server","server transport"," payloads.",[585,1158,1160],{"id":1159},"two-call-signatures","Two Call Signatures",[534,1162,1092,1163,1165],{},[603,1164,1050],{}," API accepts two forms depending on the context.",[1167,1168,1170],"h3",{"id":1169},"object-form-structured-context","Object Form (structured context)",[534,1172,1173,1174,694],{},"Pass an object to capture structured data, just like server-side ",[603,1175,1176],{},"log.set()",[595,1178,1181],{"className":597,"code":1179,"filename":1180,"language":600,"meta":601,"style":601},"log.info({ action: 'page_view', path: '\u002Fproducts', referrer: document.referrer })\n","pages\u002Fproducts.vue",[603,1182,1183],{"__ignoreMap":601},[606,1184,1185,1187,1189,1191,1193,1195,1197,1199,1201,1204,1206,1208,1210,1212,1214,1217,1219,1221,1224,1226,1229,1231,1234,1236],{"class":608,"line":609},[606,1186,1050],{"class":620},[606,1188,721],{"class":616},[606,1190,724],{"class":662},[606,1192,666],{"class":620},[606,1194,688],{"class":616},[606,1196,731],{"class":685},[606,1198,694],{"class":616},[606,1200,636],{"class":616},[606,1202,1203],{"class":639},"page_view",[606,1205,702],{"class":616},[606,1207,624],{"class":616},[606,1209,745],{"class":685},[606,1211,694],{"class":616},[606,1213,636],{"class":616},[606,1215,1216],{"class":639},"\u002Fproducts",[606,1218,702],{"class":616},[606,1220,624],{"class":616},[606,1222,1223],{"class":685}," referrer",[606,1225,694],{"class":616},[606,1227,1228],{"class":620}," document",[606,1230,721],{"class":616},[606,1232,1233],{"class":620},"referrer ",[606,1235,770],{"class":616},[606,1237,707],{"class":620},[595,1239,1244],{"className":1240,"code":1241,"filename":1242,"language":1243,"meta":601,"style":601},"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",[603,1245,1246],{"__ignoreMap":601},[606,1247,1248,1251,1253,1256,1259,1261,1264,1266,1268,1270,1272,1275,1277,1279,1281,1283,1286,1288,1291,1293],{"class":608,"line":609},[606,1249,1250],{"class":616},"[",[606,1252,699],{"class":620},[606,1254,1255],{"class":616},"]",[606,1257,1258],{"class":620}," info  ",[606,1260,688],{"class":616},[606,1262,1263],{"class":862}," action:",[606,1265,636],{"class":616},[606,1267,1203],{"class":639},[606,1269,702],{"class":616},[606,1271,624],{"class":639},[606,1273,1274],{"class":639}," path:",[606,1276,636],{"class":616},[606,1278,1216],{"class":639},[606,1280,702],{"class":616},[606,1282,624],{"class":639},[606,1284,1285],{"class":639}," referrer:",[606,1287,636],{"class":616},[606,1289,1290],{"class":639},"https:\u002F\u002Fgoogle.com",[606,1292,702],{"class":616},[606,1294,1295],{"class":639}," }\n",[1167,1297,1299],{"id":1298},"tag-message-form-quick-logs","Tag + Message Form (quick logs)",[534,1301,1302],{},"Pass a tag and a message for quick, readable logs:",[595,1304,1307],{"className":597,"code":1305,"filename":1306,"language":600,"meta":601,"style":601},"log.info('auth', 'User logged in')\n","composables\u002FuseAuth.ts",[603,1308,1309],{"__ignoreMap":601},[606,1310,1311,1313,1315,1317,1319,1321,1324,1326,1328,1330,1333,1335],{"class":608,"line":609},[606,1312,1050],{"class":620},[606,1314,721],{"class":616},[606,1316,724],{"class":662},[606,1318,666],{"class":620},[606,1320,702],{"class":616},[606,1322,1323],{"class":639},"auth",[606,1325,702],{"class":616},[606,1327,624],{"class":616},[606,1329,636],{"class":616},[606,1331,1332],{"class":639},"User logged in",[606,1334,702],{"class":616},[606,1336,707],{"class":620},[595,1338,1340],{"className":1240,"code":1339,"filename":1242,"language":1243,"meta":601,"style":601},"[auth] User logged in\n",[603,1341,1342],{"__ignoreMap":601},[606,1343,1344,1346,1348,1350],{"class":608,"line":609},[606,1345,1250],{"class":616},[606,1347,1323],{"class":620},[606,1349,1255],{"class":616},[606,1351,1352],{"class":620}," User logged in\n",[1167,1354,1356],{"id":1355},"available-levels","Available Levels",[534,1358,1359,1360,1363,1364,1363,1367,1370,1371,721],{},"Both forms support four levels: ",[603,1361,1362],{},"log.info()",", ",[603,1365,1366],{},"log.warn()",[603,1368,1369],{},"log.error()",", and ",[603,1372,1373],{},"log.debug()",[534,1375,1376,1377,1379,1380,1383,1384,1387,1388,1391,1392,721],{},"In the browser, ",[603,1378,1373],{}," is emitted with ",[603,1381,1382],{},"console.log"," (not ",[603,1385,1386],{},"console.debug",") so lines stay visible with the default DevTools ",[1132,1389,1390],{},"Info"," filter; the structured event still has ",[603,1393,1394],{},"level: 'debug'",[585,1396,1398],{"id":1397},"identity-context","Identity Context",[534,1400,1401,1402,694],{},"Track which user generated a log with ",[603,1403,1404],{},"setIdentity()",[595,1406,1408],{"className":597,"code":1407,"filename":1306,"language":600,"meta":601,"style":601},"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",[603,1409,1410,1438,1442,1448,1487,1491,1518,1523,1527,1532],{"__ignoreMap":601},[606,1411,1412,1414,1416,1419,1421,1424,1426,1428,1430,1432,1434,1436],{"class":608,"line":609},[606,1413,613],{"class":612},[606,1415,617],{"class":616},[606,1417,1418],{"class":620}," setIdentity",[606,1420,624],{"class":616},[606,1422,1423],{"class":620}," clearIdentity",[606,1425,624],{"class":616},[606,1427,627],{"class":620},[606,1429,630],{"class":616},[606,1431,633],{"class":612},[606,1433,636],{"class":616},[606,1435,640],{"class":639},[606,1437,643],{"class":616},[606,1439,1440],{"class":608,"line":646},[606,1441,650],{"emptyLinePlaceholder":649},[606,1443,1444],{"class":608,"line":653},[606,1445,1447],{"class":1446},"sHwdD","\u002F\u002F After login\n",[606,1449,1450,1453,1455,1457,1460,1462,1464,1467,1469,1471,1474,1476,1478,1481,1483,1485],{"class":608,"line":679},[606,1451,1452],{"class":662},"setIdentity",[606,1454,666],{"class":620},[606,1456,688],{"class":616},[606,1458,1459],{"class":685}," userId",[606,1461,694],{"class":616},[606,1463,636],{"class":616},[606,1465,1466],{"class":639},"usr_123",[606,1468,702],{"class":616},[606,1470,624],{"class":616},[606,1472,1473],{"class":685}," plan",[606,1475,694],{"class":616},[606,1477,636],{"class":616},[606,1479,1480],{"class":639},"pro",[606,1482,702],{"class":616},[606,1484,630],{"class":616},[606,1486,707],{"class":620},[606,1488,1489],{"class":608,"line":710},[606,1490,650],{"emptyLinePlaceholder":649},[606,1492,1493,1495,1497,1499,1501,1503,1505,1507,1509,1512,1514,1516],{"class":608,"line":715},[606,1494,1050],{"class":620},[606,1496,721],{"class":616},[606,1498,724],{"class":662},[606,1500,666],{"class":620},[606,1502,688],{"class":616},[606,1504,731],{"class":685},[606,1506,694],{"class":616},[606,1508,636],{"class":616},[606,1510,1511],{"class":639},"dashboard_view",[606,1513,702],{"class":616},[606,1515,630],{"class":616},[606,1517,707],{"class":620},[606,1519,1520],{"class":608,"line":767},[606,1521,1522],{"class":1446},"\u002F\u002F → { userId: 'usr_123', plan: 'pro', action: 'dashboard_view', ... }\n",[606,1524,1525],{"class":608,"line":912},[606,1526,650],{"emptyLinePlaceholder":649},[606,1528,1529],{"class":608,"line":956},[606,1530,1531],{"class":1446},"\u002F\u002F After logout\n",[606,1533,1534,1537],{"class":608,"line":965},[606,1535,1536],{"class":662},"clearIdentity",[606,1538,1539],{"class":620},"()\n",[534,1541,1542],{},"Identity fields are automatically merged into every log event until cleared. This lets you correlate browser events to specific users in your observability tools.",[585,1544,501],{"id":1545},"configuration",[534,1547,1548,1551],{},[603,1549,1550],{},"initLog()"," accepts the following options:",[1553,1554,1555,1571],"table",{},[1556,1557,1558],"thead",{},[1559,1560,1561,1565,1568],"tr",{},[1562,1563,1564],"th",{},"Option",[1562,1566,1567],{},"Default",[1562,1569,1570],{},"Description",[1572,1573,1574,1590,1604,1618,1639,1654],"tbody",{},[1559,1575,1576,1582,1587],{},[1577,1578,1579],"td",{},[603,1580,1581],{},"enabled",[1577,1583,1584],{},[603,1585,1586],{},"true",[1577,1588,1589],{},"Enable or disable all client logging",[1559,1591,1592,1597,1601],{},[1577,1593,1594],{},[603,1595,1596],{},"console",[1577,1598,1599],{},[603,1600,1586],{},[1577,1602,1603],{},"Output logs to the browser console",[1559,1605,1606,1611,1615],{},[1577,1607,1608],{},[603,1609,1610],{},"pretty",[1577,1612,1613],{},[603,1614,1586],{},[1577,1616,1617],{},"Use colored, formatted console output",[1559,1619,1620,1624,1628],{},[1577,1621,1622],{},[603,1623,1102],{},[1577,1625,1626],{},[603,1627,1126],{},[1577,1629,1630,1631,1114,1633,1114,1635,1114,1637],{},"Minimum severity: ",[603,1632,1113],{},[603,1634,724],{},[603,1636,1119],{},[603,1638,1122],{},[1559,1640,1641,1646,1651],{},[1577,1642,1643],{},[603,1644,1645],{},"service",[1577,1647,1648],{},[603,1649,1650],{},"'client'",[1577,1652,1653],{},"Service name included in every log event",[1559,1655,1656,1661,1664],{},[1577,1657,1658],{},[603,1659,1660],{},"transport",[1577,1662,1663],{},"-",[1577,1665,1666],{},"Send logs to a server endpoint (see below)",[595,1668,1671],{"className":597,"code":1669,"filename":1670,"language":600,"meta":601,"style":601},"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",[603,1672,1673,1682,1698,1707,1720,1739,1744],{"__ignoreMap":601},[606,1674,1675,1677,1679],{"class":608,"line":609},[606,1676,1027],{"class":662},[606,1678,666],{"class":620},[606,1680,1681],{"class":616},"{\n",[606,1683,1684,1687,1689,1691,1693,1695],{"class":608,"line":646},[606,1685,1686],{"class":685},"  service",[606,1688,694],{"class":616},[606,1690,636],{"class":616},[606,1692,699],{"class":639},[606,1694,702],{"class":616},[606,1696,1697],{"class":616},",\n",[606,1699,1700,1703,1705],{"class":608,"line":653},[606,1701,1702],{"class":685},"  transport",[606,1704,694],{"class":616},[606,1706,676],{"class":616},[606,1708,1709,1712,1714,1718],{"class":608,"line":679},[606,1710,1711],{"class":685},"    enabled",[606,1713,694],{"class":616},[606,1715,1717],{"class":1716},"sfNiH"," true",[606,1719,1697],{"class":616},[606,1721,1722,1725,1727,1729,1732,1734,1736],{"class":608,"line":710},[606,1723,1724],{"class":685},"    endpoint",[606,1726,694],{"class":616},[606,1728,636],{"class":616},[606,1730,1731],{"class":639},"\u002Fapi\u002F_evlog\u002Fingest",[606,1733,702],{"class":616},[606,1735,624],{"class":616},[606,1737,1738],{"class":1446}," \u002F\u002F default endpoint\n",[606,1740,1741],{"class":608,"line":715},[606,1742,1743],{"class":616},"  },\n",[606,1745,1746,1748],{"class":608,"line":767},[606,1747,770],{"class":616},[606,1749,707],{"class":620},[1751,1752,1754,1363,1756,1370,1758,1760,1761,1763],"callout",{"color":724,"icon":1753},"i-lucide-info",[603,1755,1581],{},[603,1757,1596],{},[603,1759,1610],{}," all default to ",[603,1762,1586],{},". You only need to set them if you want to change the defaults.",[585,1765,1767],{"id":1766},"sending-logs-to-the-server","Sending Logs to the Server",[534,1769,1770],{},"By default, client logs only appear in the browser console. To persist them, you have two options:",[1167,1772,1774],{"id":1773},"built-in-transport","Built-in Transport",[534,1776,1777,1778,1780,1781,1784,1785,1788],{},"The simplest approach is to enable the built-in transport in ",[603,1779,1550],{},". Each log is sent individually via ",[603,1782,1783],{},"fetch"," with ",[603,1786,1787],{},"keepalive: true",". Good for low-volume apps.",[592,1790,1791,1910,2110],{},[595,1792,1794],{"className":597,"code":1793,"filename":599,"language":600,"meta":601,"style":601},"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",[603,1795,1796,1814,1818,1834,1842,1857,1866,1877,1892,1897,1904],{"__ignoreMap":601},[606,1797,1798,1800,1802,1804,1806,1808,1810,1812],{"class":608,"line":609},[606,1799,613],{"class":612},[606,1801,617],{"class":616},[606,1803,621],{"class":620},[606,1805,630],{"class":616},[606,1807,633],{"class":612},[606,1809,636],{"class":616},[606,1811,640],{"class":639},[606,1813,643],{"class":616},[606,1815,1816],{"class":608,"line":646},[606,1817,650],{"emptyLinePlaceholder":649},[606,1819,1820,1822,1824,1826,1828,1830,1832],{"class":608,"line":653},[606,1821,656],{"class":612},[606,1823,659],{"class":612},[606,1825,663],{"class":662},[606,1827,666],{"class":620},[606,1829,669],{"class":616},[606,1831,673],{"class":672},[606,1833,676],{"class":616},[606,1835,1836,1838,1840],{"class":608,"line":679},[606,1837,682],{"class":662},[606,1839,666],{"class":685},[606,1841,1681],{"class":616},[606,1843,1844,1847,1849,1851,1853,1855],{"class":608,"line":710},[606,1845,1846],{"class":685},"    service",[606,1848,694],{"class":616},[606,1850,636],{"class":616},[606,1852,699],{"class":639},[606,1854,702],{"class":616},[606,1856,1697],{"class":616},[606,1858,1859,1862,1864],{"class":608,"line":715},[606,1860,1861],{"class":685},"    transport",[606,1863,694],{"class":616},[606,1865,676],{"class":616},[606,1867,1868,1871,1873,1875],{"class":608,"line":767},[606,1869,1870],{"class":685},"      enabled",[606,1872,694],{"class":616},[606,1874,1717],{"class":1716},[606,1876,1697],{"class":616},[606,1878,1879,1882,1884,1886,1888,1890],{"class":608,"line":912},[606,1880,1881],{"class":685},"      endpoint",[606,1883,694],{"class":616},[606,1885,636],{"class":616},[606,1887,1731],{"class":639},[606,1889,702],{"class":616},[606,1891,1697],{"class":616},[606,1893,1894],{"class":608,"line":956},[606,1895,1896],{"class":616},"    },\n",[606,1898,1899,1902],{"class":608,"line":965},[606,1900,1901],{"class":616},"  }",[606,1903,707],{"class":685},[606,1905,1906,1908],{"class":608,"line":970},[606,1907,770],{"class":616},[606,1909,707],{"class":620},[595,1911,1916],{"className":1912,"code":1913,"filename":1914,"language":1915,"meta":601,"style":601},"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",[603,1917,1918,1938,1942,1975,1982,2007,2017,2064,2073,2082,2091,2100,2105],{"__ignoreMap":601},[606,1919,1920,1922,1924,1927,1929,1931,1933,1936],{"class":608,"line":609},[606,1921,613],{"class":612},[606,1923,617],{"class":616},[606,1925,1926],{"class":620}," EvlogProvider",[606,1928,630],{"class":616},[606,1930,633],{"class":612},[606,1932,636],{"class":616},[606,1934,1935],{"class":639},"evlog\u002Fnext\u002Fclient",[606,1937,643],{"class":616},[606,1939,1940],{"class":608,"line":646},[606,1941,650],{"emptyLinePlaceholder":649},[606,1943,1944,1946,1948,1950,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973],{"class":608,"line":653},[606,1945,656],{"class":612},[606,1947,659],{"class":612},[606,1949,840],{"class":672},[606,1951,1952],{"class":662}," Layout",[606,1954,846],{"class":616},[606,1956,850],{"class":849},[606,1958,853],{"class":616},[606,1960,617],{"class":616},[606,1962,850],{"class":685},[606,1964,694],{"class":616},[606,1966,863],{"class":862},[606,1968,721],{"class":616},[606,1970,868],{"class":862},[606,1972,871],{"class":616},[606,1974,676],{"class":616},[606,1976,1977,1979],{"class":608,"line":679},[606,1978,973],{"class":612},[606,1980,1981],{"class":685}," (\n",[606,1983,1984,1987,1990,1993,1996,1999,2002,2004],{"class":608,"line":710},[606,1985,1986],{"class":616},"    \u003C",[606,1988,1989],{"class":685},"html",[606,1991,1992],{"class":672}," lang",[606,1994,1995],{"class":616},"=",[606,1997,1998],{"class":616},"\"",[606,2000,2001],{"class":639},"en",[606,2003,1998],{"class":616},[606,2005,2006],{"class":616},">\n",[606,2008,2009,2012,2015],{"class":608,"line":715},[606,2010,2011],{"class":616},"      \u003C",[606,2013,2014],{"class":685},"body",[606,2016,2006],{"class":616},[606,2018,2019,2022,2025,2027,2029,2031,2033,2035,2038,2041,2044,2046,2048,2050,2053,2055,2057,2059,2061],{"class":608,"line":767},[606,2020,2021],{"class":616},"        \u003C",[606,2023,2024],{"class":862},"EvlogProvider",[606,2026,691],{"class":672},[606,2028,1995],{"class":616},[606,2030,1998],{"class":616},[606,2032,699],{"class":639},[606,2034,1998],{"class":616},[606,2036,2037],{"class":672}," transport",[606,2039,2040],{"class":616},"={{",[606,2042,2043],{"class":685}," enabled",[606,2045,694],{"class":616},[606,2047,1717],{"class":1716},[606,2049,624],{"class":616},[606,2051,2052],{"class":685}," endpoint",[606,2054,694],{"class":616},[606,2056,636],{"class":616},[606,2058,1731],{"class":639},[606,2060,702],{"class":616},[606,2062,2063],{"class":616}," }}>\n",[606,2065,2066,2069,2071],{"class":608,"line":912},[606,2067,2068],{"class":616},"          {",[606,2070,981],{"class":620},[606,2072,990],{"class":616},[606,2074,2075,2078,2080],{"class":608,"line":956},[606,2076,2077],{"class":616},"        \u003C\u002F",[606,2079,2024],{"class":862},[606,2081,2006],{"class":616},[606,2083,2084,2087,2089],{"class":608,"line":965},[606,2085,2086],{"class":616},"      \u003C\u002F",[606,2088,2014],{"class":685},[606,2090,2006],{"class":616},[606,2092,2093,2096,2098],{"class":608,"line":970},[606,2094,2095],{"class":616},"    \u003C\u002F",[606,2097,1989],{"class":685},[606,2099,2006],{"class":616},[606,2101,2102],{"class":608,"line":987},[606,2103,2104],{"class":685},"  )\n",[606,2106,2108],{"class":608,"line":2107},13,[606,2109,990],{"class":616},[595,2111,2113],{"className":597,"code":2112,"filename":994,"language":600,"meta":601,"style":601},"import { initLog } from 'evlog\u002Fclient'\n\ninitLog({\n  service: 'web',\n  transport: {\n    enabled: true,\n    endpoint: '\u002Fapi\u002F_evlog\u002Fingest',\n  },\n})\n",[603,2114,2115,2133,2137,2145,2159,2167,2177,2191,2195],{"__ignoreMap":601},[606,2116,2117,2119,2121,2123,2125,2127,2129,2131],{"class":608,"line":609},[606,2118,613],{"class":612},[606,2120,617],{"class":616},[606,2122,621],{"class":620},[606,2124,630],{"class":616},[606,2126,633],{"class":612},[606,2128,636],{"class":616},[606,2130,640],{"class":639},[606,2132,643],{"class":616},[606,2134,2135],{"class":608,"line":646},[606,2136,650],{"emptyLinePlaceholder":649},[606,2138,2139,2141,2143],{"class":608,"line":653},[606,2140,1027],{"class":662},[606,2142,666],{"class":620},[606,2144,1681],{"class":616},[606,2146,2147,2149,2151,2153,2155,2157],{"class":608,"line":679},[606,2148,1686],{"class":685},[606,2150,694],{"class":616},[606,2152,636],{"class":616},[606,2154,699],{"class":639},[606,2156,702],{"class":616},[606,2158,1697],{"class":616},[606,2160,2161,2163,2165],{"class":608,"line":710},[606,2162,1702],{"class":685},[606,2164,694],{"class":616},[606,2166,676],{"class":616},[606,2168,2169,2171,2173,2175],{"class":608,"line":715},[606,2170,1711],{"class":685},[606,2172,694],{"class":616},[606,2174,1717],{"class":1716},[606,2176,1697],{"class":616},[606,2178,2179,2181,2183,2185,2187,2189],{"class":608,"line":767},[606,2180,1724],{"class":685},[606,2182,694],{"class":616},[606,2184,636],{"class":616},[606,2186,1731],{"class":639},[606,2188,702],{"class":616},[606,2190,1697],{"class":616},[606,2192,2193],{"class":608,"line":912},[606,2194,1743],{"class":616},[606,2196,2197,2199],{"class":608,"line":956},[606,2198,770],{"class":616},[606,2200,707],{"class":620},[1751,2202,2203,2204,2208],{"color":724,"icon":1753},"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 ",[574,2205,2207],{"href":2206},"\u002Fextend\u002Fdrain-pipeline#server-endpoint","HTTP drain"," docs for Express and Hono examples.",[1167,2210,2212],{"id":2211},"http-drain-pipeline","HTTP drain pipeline",[534,2214,2215,2216,2219],{},"For higher volume or when you need batching, retries, and page-exit flushing, use the HTTP drain (",[603,2217,2218],{},"evlog\u002Fhttp","). This works with any frontend and has no framework dependency.",[592,2221,2222,2450],{},[595,2223,2225],{"className":597,"code":2224,"filename":599,"language":600,"meta":601,"style":601},"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",[603,2226,2227,2251,2270,2274,2290,2307,2329,2338,2368,2387,2391,2397,2401,2416,2443],{"__ignoreMap":601},[606,2228,2229,2231,2233,2236,2238,2240,2242,2244,2246,2249],{"class":608,"line":609},[606,2230,613],{"class":612},[606,2232,617],{"class":616},[606,2234,2235],{"class":620}," initLogger",[606,2237,624],{"class":616},[606,2239,627],{"class":620},[606,2241,630],{"class":616},[606,2243,633],{"class":612},[606,2245,636],{"class":616},[606,2247,2248],{"class":639},"evlog",[606,2250,643],{"class":616},[606,2252,2253,2255,2257,2260,2262,2264,2266,2268],{"class":608,"line":646},[606,2254,613],{"class":612},[606,2256,617],{"class":616},[606,2258,2259],{"class":620}," createHttpLogDrain",[606,2261,630],{"class":616},[606,2263,633],{"class":612},[606,2265,636],{"class":616},[606,2267,2218],{"class":639},[606,2269,643],{"class":616},[606,2271,2272],{"class":608,"line":653},[606,2273,650],{"emptyLinePlaceholder":649},[606,2275,2276,2278,2280,2282,2284,2286,2288],{"class":608,"line":679},[606,2277,656],{"class":612},[606,2279,659],{"class":612},[606,2281,663],{"class":662},[606,2283,666],{"class":620},[606,2285,669],{"class":616},[606,2287,673],{"class":672},[606,2289,676],{"class":616},[606,2291,2292,2295,2298,2301,2303,2305],{"class":608,"line":710},[606,2293,2294],{"class":672},"  const",[606,2296,2297],{"class":620}," drain",[606,2299,2300],{"class":616}," =",[606,2302,2259],{"class":662},[606,2304,666],{"class":685},[606,2306,1681],{"class":616},[606,2308,2309,2312,2314,2316,2318,2320,2322,2324,2326],{"class":608,"line":715},[606,2310,2311],{"class":685},"    drain",[606,2313,694],{"class":616},[606,2315,617],{"class":616},[606,2317,2052],{"class":685},[606,2319,694],{"class":616},[606,2321,636],{"class":616},[606,2323,1731],{"class":639},[606,2325,702],{"class":616},[606,2327,2328],{"class":616}," },\n",[606,2330,2331,2334,2336],{"class":608,"line":767},[606,2332,2333],{"class":685},"    pipeline",[606,2335,694],{"class":616},[606,2337,676],{"class":616},[606,2339,2340,2343,2345,2347,2350,2352,2356,2358,2361,2363,2366],{"class":608,"line":912},[606,2341,2342],{"class":685},"      batch",[606,2344,694],{"class":616},[606,2346,617],{"class":616},[606,2348,2349],{"class":685}," size",[606,2351,694],{"class":616},[606,2353,2355],{"class":2354},"sbssI"," 25",[606,2357,624],{"class":616},[606,2359,2360],{"class":685}," intervalMs",[606,2362,694],{"class":616},[606,2364,2365],{"class":2354}," 2000",[606,2367,2328],{"class":616},[606,2369,2370,2373,2375,2377,2380,2382,2385],{"class":608,"line":956},[606,2371,2372],{"class":685},"      retry",[606,2374,694],{"class":616},[606,2376,617],{"class":616},[606,2378,2379],{"class":685}," maxAttempts",[606,2381,694],{"class":616},[606,2383,2384],{"class":2354}," 2",[606,2386,2328],{"class":616},[606,2388,2389],{"class":608,"line":965},[606,2390,1896],{"class":616},[606,2392,2393,2395],{"class":608,"line":970},[606,2394,1901],{"class":616},[606,2396,707],{"class":685},[606,2398,2399],{"class":608,"line":987},[606,2400,650],{"emptyLinePlaceholder":649},[606,2402,2403,2406,2408,2410,2412,2414],{"class":608,"line":2107},[606,2404,2405],{"class":662},"  initLogger",[606,2407,666],{"class":685},[606,2409,688],{"class":616},[606,2411,2297],{"class":620},[606,2413,630],{"class":616},[606,2415,707],{"class":685},[606,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441],{"class":608,"line":2418},14,[606,2420,718],{"class":620},[606,2422,721],{"class":616},[606,2424,724],{"class":662},[606,2426,666],{"class":685},[606,2428,688],{"class":616},[606,2430,731],{"class":685},[606,2432,694],{"class":616},[606,2434,636],{"class":616},[606,2436,738],{"class":639},[606,2438,702],{"class":616},[606,2440,630],{"class":616},[606,2442,707],{"class":685},[606,2444,2446,2448],{"class":608,"line":2445},15,[606,2447,770],{"class":616},[606,2449,707],{"class":620},[595,2451,2453],{"className":597,"code":2452,"filename":994,"language":600,"meta":601,"style":601},"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",[603,2454,2455,2477,2495,2499,2515,2537,2546,2571,2588,2592,2598,2602,2617],{"__ignoreMap":601},[606,2456,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475],{"class":608,"line":609},[606,2458,613],{"class":612},[606,2460,617],{"class":616},[606,2462,2235],{"class":620},[606,2464,624],{"class":616},[606,2466,627],{"class":620},[606,2468,630],{"class":616},[606,2470,633],{"class":612},[606,2472,636],{"class":616},[606,2474,2248],{"class":639},[606,2476,643],{"class":616},[606,2478,2479,2481,2483,2485,2487,2489,2491,2493],{"class":608,"line":646},[606,2480,613],{"class":612},[606,2482,617],{"class":616},[606,2484,2259],{"class":620},[606,2486,630],{"class":616},[606,2488,633],{"class":612},[606,2490,636],{"class":616},[606,2492,2218],{"class":639},[606,2494,643],{"class":616},[606,2496,2497],{"class":608,"line":653},[606,2498,650],{"emptyLinePlaceholder":649},[606,2500,2501,2504,2507,2509,2511,2513],{"class":608,"line":679},[606,2502,2503],{"class":672},"const",[606,2505,2506],{"class":620}," drain ",[606,2508,1995],{"class":616},[606,2510,2259],{"class":662},[606,2512,666],{"class":620},[606,2514,1681],{"class":616},[606,2516,2517,2520,2522,2524,2526,2528,2530,2533,2535],{"class":608,"line":710},[606,2518,2519],{"class":685},"  drain",[606,2521,694],{"class":616},[606,2523,617],{"class":616},[606,2525,2052],{"class":685},[606,2527,694],{"class":616},[606,2529,636],{"class":616},[606,2531,2532],{"class":639},"https:\u002F\u002Flogs.example.com\u002Fv1\u002Fingest",[606,2534,702],{"class":616},[606,2536,2328],{"class":616},[606,2538,2539,2542,2544],{"class":608,"line":715},[606,2540,2541],{"class":685},"  pipeline",[606,2543,694],{"class":616},[606,2545,676],{"class":616},[606,2547,2548,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569],{"class":608,"line":767},[606,2549,2550],{"class":685},"    batch",[606,2552,694],{"class":616},[606,2554,617],{"class":616},[606,2556,2349],{"class":685},[606,2558,694],{"class":616},[606,2560,2355],{"class":2354},[606,2562,624],{"class":616},[606,2564,2360],{"class":685},[606,2566,694],{"class":616},[606,2568,2365],{"class":2354},[606,2570,2328],{"class":616},[606,2572,2573,2576,2578,2580,2582,2584,2586],{"class":608,"line":912},[606,2574,2575],{"class":685},"    retry",[606,2577,694],{"class":616},[606,2579,617],{"class":616},[606,2581,2379],{"class":685},[606,2583,694],{"class":616},[606,2585,2384],{"class":2354},[606,2587,2328],{"class":616},[606,2589,2590],{"class":608,"line":956},[606,2591,1743],{"class":616},[606,2593,2594,2596],{"class":608,"line":965},[606,2595,770],{"class":616},[606,2597,707],{"class":620},[606,2599,2600],{"class":608,"line":970},[606,2601,650],{"emptyLinePlaceholder":649},[606,2603,2604,2607,2609,2611,2613,2615],{"class":608,"line":987},[606,2605,2606],{"class":662},"initLogger",[606,2608,666],{"class":620},[606,2610,688],{"class":616},[606,2612,2506],{"class":620},[606,2614,770],{"class":616},[606,2616,707],{"class":620},[606,2618,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641],{"class":608,"line":2107},[606,2620,1050],{"class":620},[606,2622,721],{"class":616},[606,2624,724],{"class":662},[606,2626,666],{"class":620},[606,2628,688],{"class":616},[606,2630,731],{"class":685},[606,2632,694],{"class":616},[606,2634,636],{"class":616},[606,2636,738],{"class":639},[606,2638,702],{"class":616},[606,2640,630],{"class":616},[606,2642,707],{"class":620},[534,2644,2645],{},"The HTTP drain automatically:",[549,2647,2648,2654,2660],{},[552,2649,2650,2653],{},[1132,2651,2652],{},"Batches"," events by size and time interval",[552,2655,2656,2659],{},[1132,2657,2658],{},"Retries"," failed sends with exponential backoff",[552,2661,2662,2665,2666,2669],{},[1132,2663,2664],{},"Flushes"," buffered events via ",[603,2667,2668],{},"sendBeacon"," when the page becomes hidden (tab switch, navigation, close)",[1751,2671,2674,2675,2677],{"color":2672,"icon":2673},"neutral","i-lucide-arrow-right","See the ",[574,2676,2207],{"href":493}," adapter docs for full configuration reference, authentication, and server endpoint examples.",[585,2679,2681],{"id":2680},"next-steps","Next Steps",[549,2683,2684,2689,2695],{},[552,2685,2686,2688],{},[574,2687,2207],{"href":493}," - Batching, retry, and sendBeacon fallback",[552,2690,2691,2694],{},[574,2692,2693],{"href":493},"Pipeline"," - Advanced pipeline configuration",[552,2696,2697,2699],{},[574,2698,49],{"href":50}," - Surface client errors with actionable context",[2701,2702,2703],"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":601,"searchDepth":646,"depth":646,"links":2705},[2706,2707,2709,2714,2715,2716,2720],{"id":587,"depth":646,"text":24},{"id":1098,"depth":646,"text":2708},"Minimum level (minLevel)",{"id":1159,"depth":646,"text":1160,"children":2710},[2711,2712,2713],{"id":1169,"depth":653,"text":1170},{"id":1298,"depth":653,"text":1299},{"id":1355,"depth":653,"text":1356},{"id":1397,"depth":646,"text":1398},{"id":1545,"depth":646,"text":501},{"id":1766,"depth":646,"text":1767,"children":2717},[2718,2719],{"id":1773,"depth":653,"text":1774},{"id":2211,"depth":653,"text":2212},{"id":2680,"depth":646,"text":2681},"Capture browser events with structured logging. Same API as the server, with automatic console styling, user identity context, and optional server transport.","md",[2724,2727],{"label":2207,"icon":2725,"to":493,"color":2672,"variant":2726},"i-lucide-globe","subtle",{"label":44,"icon":47,"to":45,"color":2672,"variant":2726},{},{"icon":316},{"title":313,"description":2721},"soGOEXQ4XAr17_mahnK9aNsCipRA3_XqQHyDWWTVemU",[2733,2735],{"title":305,"path":310,"stem":311,"description":2734,"children":-1},"[object Object]",{"title":128,"path":324,"stem":325,"description":2736,"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.",1786793457300]