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