[{"data":1,"prerenderedAt":1388},["ShallowReactive",2],{"navigation_docs":3,"-integrate-frameworks-overview":528,"-integrate-frameworks-overview-surround":1383},[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":530,"body":531,"description":1376,"extension":1377,"links":1378,"meta":1379,"navigation":1380,"path":222,"seo":1381,"stem":223,"__hash__":1382},"docs\u002F4.integrate\u002Fframeworks\u002F00.overview.md","Framework Integrations",{"type":532,"value":533,"toc":1363},"minimark",[534,550,564,568,981,985,997,1001,1064,1068,1149,1166,1170,1226,1230,1289,1310,1313,1323,1357],[535,536,537,538,542,543,542,546,549],"p",{},"evlog provides native integrations for every major TypeScript framework. The same core API (",[539,540,541],"code",{},"log.set()",", ",[539,544,545],{},"createError()",[539,547,548],{},"parseError()",") works identically everywhere. Only the setup differs.",[551,552,555,556,560,561,563],"callout",{"color":553,"icon":554},"neutral","i-lucide-globe","No HTTP framework? Use ",[557,558,559],"a",{"href":287},"Standalone TypeScript"," for scripts, libraries, and workers, and ",[557,562,281],{"href":282}," on the edge.",[565,566,128],"h2",{"id":567},"overview",[569,570,571,593],"table",{},[572,573,574],"thead",{},[575,576,577,581,584,587,590],"tr",{},[578,579,580],"th",{},"Framework",[578,582,583],{},"Import",[578,585,586],{},"Type",[578,588,589],{},"Logger Access",[578,591,592],{},"Status",[594,595,596,619,640,664,683,703,721,743,762,784,806,829,852,875,895,920,940,958],"tbody",{},[575,597,598,603,608,611,616],{},[599,600,601],"td",{},[557,602,226],{"href":227},[599,604,605],{},[539,606,607],{},"evlog\u002Fnuxt",[599,609,610],{},"Module",[599,612,613],{},[539,614,615],{},"useLogger(event)",[599,617,618],{},"Stable",[575,620,621,625,630,633,638],{},[599,622,623],{},[557,624,231],{"href":232},[599,626,627],{},[539,628,629],{},"evlog\u002Fnext",[599,631,632],{},"Factory",[599,634,635],{},[539,636,637],{},"useLogger()",[599,639,618],{},[575,641,642,646,651,654,662],{},[599,643,644],{},[557,645,236],{"href":237},[599,647,648],{},[539,649,650],{},"evlog\u002Fsveltekit",[599,652,653],{},"Hooks",[599,655,656,659,660],{},[539,657,658],{},"event.locals.log"," \u002F ",[539,661,637],{},[599,663,618],{},[575,665,666,670,675,677,681],{},[599,667,668],{},[557,669,241],{"href":242},[599,671,672],{},[539,673,674],{},"evlog\u002Fnitro",[599,676,610],{},[599,678,679],{},[539,680,615],{},[599,682,618],{},[575,684,685,689,694,696,701],{},[599,686,687],{},[557,688,246],{"href":247},[599,690,691],{},[539,692,693],{},"evlog\u002Fnitro\u002Fv3",[599,695,610],{},[599,697,698],{},[539,699,700],{},"useRequest().context.log",[599,702,618],{},[575,704,705,710,714,716,719],{},[599,706,707],{},[557,708,709],{"href":247},"TanStack Router",[599,711,712],{},[539,713,693],{},[599,715,610],{},[599,717,718],{},"Via TanStack Start (uses Nitro v3)",[599,720,618],{},[575,722,723,727,732,734,741],{},[599,724,725],{},[557,726,276],{"href":277},[599,728,729],{},[539,730,731],{},"evlog\u002Freact-router",[599,733,361],{},[599,735,736,659,739],{},[539,737,738],{},"context.get(loggerContext)",[539,740,637],{},[599,742,618],{},[575,744,745,749,754,756,760],{},[599,746,747],{},[557,748,251],{"href":252},[599,750,751],{},[539,752,753],{},"evlog\u002Fnestjs",[599,755,610],{},[599,757,758],{},[539,759,637],{},[599,761,618],{},[575,763,764,768,773,775,782],{},[599,765,766],{},[557,767,256],{"href":257},[599,769,770],{},[539,771,772],{},"evlog\u002Fexpress",[599,774,361],{},[599,776,777,659,780],{},[539,778,779],{},"req.log",[539,781,637],{},[599,783,618],{},[575,785,786,790,795,797,804],{},[599,787,788],{},[557,789,261],{"href":262},[599,791,792],{},[539,793,794],{},"evlog\u002Fhono",[599,796,361],{},[599,798,799,659,802],{},[539,800,801],{},"c.get('log')",[539,803,637],{},[599,805,618],{},[575,807,808,812,817,820,827],{},[599,809,810],{},[557,811,266],{"href":267},[599,813,814],{},[539,815,816],{},"evlog\u002Ffastify",[599,818,819],{},"Plugin",[599,821,822,659,825],{},[539,823,824],{},"request.log",[539,826,637],{},[599,828,618],{},[575,830,831,835,840,842,850],{},[599,832,833],{},[557,834,271],{"href":272},[599,836,837],{},[539,838,839],{},"evlog\u002Felysia",[599,841,819],{},[599,843,844,847,848],{},[539,845,846],{},"log"," (context) \u002F ",[539,849,637],{},[599,851,618],{},[575,853,854,858,863,866,873],{},[599,855,856],{},[557,857,295],{"href":296},[599,859,860],{},[539,861,862],{},"evlog\u002Forpc",[599,864,865],{},"Handler wrapper + middleware",[599,867,868,659,871],{},[539,869,870],{},"context.log",[539,872,637],{},[599,874,618],{},[575,876,877,881,886,888,893],{},[599,878,879],{},[557,880,281],{"href":282},[599,882,883],{},[539,884,885],{},"evlog\u002Fworkers",[599,887,632],{},[599,889,890],{},[539,891,892],{},"createWorkersLogger()",[599,894,618],{},[575,896,897,901,906,909,917],{},[599,898,899],{},[557,900,300],{"href":301},[599,902,903],{},[539,904,905],{},"evlog",[599,907,908],{},"Manual",[599,910,911,659,914],{},[539,912,913],{},"createLogger()",[539,915,916],{},"createRequestLogger()",[599,918,919],{},"Guide",[575,921,922,926,930,932,938],{},[599,923,924],{},[557,925,286],{"href":287},[599,927,928],{},[539,929,905],{},[599,931,908],{},[599,933,934,659,936],{},[539,935,913],{},[539,937,916],{},[599,939,618],{},[575,941,942,946,950,952,956],{},[599,943,944],{},[557,945,290],{"href":291},[599,947,948],{},[539,949,905],{},[599,951,908],{},[599,953,954],{},[539,955,916],{},[599,957,919],{},[575,959,960,965,970,973,978],{},[599,961,962],{},[557,963,964],{"href":451},"Custom",[599,966,967],{},[539,968,969],{},"evlog\u002Ftoolkit",[599,971,972],{},"Build your own",[599,974,975],{},[539,976,977],{},"createMiddlewareLogger()",[599,979,980],{},"Beta",[565,982,984],{"id":983},"api-cheat-sheet","API cheat sheet",[535,986,987,988,992,993,996],{},"Two things differ per framework: how you ",[989,990,991],"strong",{},"bootstrap"," evlog, and how you ",[989,994,995],{},"access the request logger",".",[998,999,1000],"h3",{"id":991},"Bootstrap",[569,1002,1003,1012],{},[572,1004,1005],{},[575,1006,1007,1010],{},[578,1008,1009],{},"Pattern",[578,1011,217],{},[594,1013,1014,1025,1035,1044,1052],{},[575,1015,1016,1022],{},[599,1017,1018,1021],{},[539,1019,1020],{},"evlog(options)"," middleware \u002F plugin",[599,1023,1024],{},"Hono, Express, Fastify, Elysia, SvelteKit, React Router",[575,1026,1027,1033],{},[599,1028,1029,1032],{},[539,1030,1031],{},"createEvlog(options)"," factory",[599,1034,231],{},[575,1036,1037,1042],{},[599,1038,1039],{},[539,1040,1041],{},"EvlogModule.forRoot()",[599,1043,251],{},[575,1045,1046,1049],{},[599,1047,1048],{},"Module default export",[599,1050,1051],{},"Nuxt, Nitro v2\u002Fv3",[575,1053,1054,1057],{},[599,1055,1056],{},"Manual factory",[599,1058,1059,1060,1063],{},"Cloudflare Workers (",[539,1061,1062],{},"createWorkersLogger","), Standalone, AWS Lambda, Astro",[998,1065,1067],{"id":1066},"logger-access","Logger access",[569,1069,1070,1078],{},[572,1071,1072],{},[575,1073,1074,1076],{},[578,1075,1009],{},[578,1077,217],{},[594,1079,1080,1089,1098,1106,1114,1122,1130,1138],{},[575,1081,1082,1086],{},[599,1083,1084],{},[539,1085,615],{},[599,1087,1088],{},"Nuxt, Nitro",[575,1090,1091,1095],{},[599,1092,1093],{},[539,1094,637],{},[599,1096,1097],{},"Next.js, NestJS, Express, Fastify, Elysia, SvelteKit, React Router, Hono",[575,1099,1100,1104],{},[599,1101,1102],{},[539,1103,801],{},[599,1105,261],{},[575,1107,1108,1112],{},[599,1109,1110],{},[539,1111,779],{},[599,1113,256],{},[575,1115,1116,1120],{},[599,1117,1118],{},[539,1119,824],{},[599,1121,266],{},[575,1123,1124,1128],{},[599,1125,1126],{},[539,1127,658],{},[599,1129,236],{},[575,1131,1132,1136],{},[599,1133,1134],{},[539,1135,738],{},[599,1137,276],{},[575,1139,1140,1146],{},[599,1141,1142,659,1144],{},[539,1143,916],{},[539,1145,913],{},[599,1147,1148],{},"Standalone, Workers, manual setups",[551,1150,1153,1154,1156,1157,1159,1160,1162,1163,996],{"color":1151,"icon":1152},"info","i-lucide-info","On Hono, use ",[539,1155,801],{}," inside handlers and ",[539,1158,637],{}," from ",[539,1161,794],{}," in the layers underneath. See ",[557,1164,1165],{"href":262},"Hono integration",[565,1167,1169],{"id":1168},"full-stack-frameworks","Full-Stack Frameworks",[1171,1172,1173,1188,1198,1203,1206,1212,1221],"card-group",{},[1174,1175,1176,1177,542,1180,1183,1184,1187],"card",{"color":553,"icon":229,"title":226,"to":227},"Auto-imported ",[539,1178,1179],{},"useLogger",[539,1181,1182],{},"createError",", and ",[539,1185,1186],{},"parseError",". Zero config.",[1174,1189,1190,1193,1194,1197],{"color":553,"icon":234,"title":231,"to":232},[539,1191,1192],{},"createEvlog()"," factory with ",[539,1195,1196],{},"withEvlog()"," handler wrapper and client provider.",[1174,1199,1200,1201,996],{"color":553,"icon":239,"title":236,"to":237},"Handle and handleError hooks with request-scoped logger on ",[539,1202,658],{},[1174,1204,1205],{"color":553,"icon":244,"title":241,"to":242},"Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.",[1174,1207,1208,1209,1211],{"color":553,"icon":249,"title":246,"to":247},"Uses Nitro v3 module with async context, so ",[539,1210,637],{}," works inside server functions. Also covers TanStack Router (full-stack mode).",[1174,1213,1214,1215,1217,1218,1220],{"color":553,"icon":279,"title":276,"to":277},"Middleware with ",[539,1216,738],{}," and ",[539,1219,637],{}," for loaders and services.",[1174,1222,1223,1225],{"color":553,"icon":254,"title":251,"to":252},[539,1224,1041],{}," with global middleware, exception filter, and async config.",[565,1227,1229],{"id":1228},"server-frameworks","Server Frameworks",[1171,1231,1232,1237,1246,1252,1260,1269,1272,1282,1285],{},[1174,1233,1214,1234,1236],{"color":553,"icon":259,"title":256,"to":257},[539,1235,779],{}," and 4-argument error handler.",[1174,1238,1239,1240,1242,1243,996],{"color":553,"icon":264,"title":261,"to":262},"Middleware with typed ",[539,1241,801],{}," via ",[539,1244,1245],{},"EvlogVariables",[1174,1247,1248,1249,1251],{"color":553,"icon":269,"title":266,"to":267},"Plugin with ",[539,1250,824],{}," that shadows Fastify's built-in pino logger.",[1174,1253,1248,1254,1256,1257,996],{"color":553,"icon":274,"title":271,"to":272},[539,1255,846],{}," in route context via Elysia's ",[539,1258,1259],{},"derive",[1174,1261,1262,1263,1265,1266,996],{"color":553,"icon":298,"title":295,"to":296},"Handler wrapper + procedure middleware exposing ",[539,1264,870],{}," and per-procedure ",[539,1267,1268],{},"operation",[1174,1270,1271],{"color":553,"icon":284,"title":281,"to":282},"Factory for creating request-scoped loggers with Cloudflare-specific context.",[1174,1273,1274,1277,1278,1281],{"color":553,"icon":303,"title":300,"to":301},[539,1275,1276],{},"initLogger"," once per runtime; ",[539,1279,1280],{},"createLogger"," per invocation (SQS, events, HTTP API).",[1174,1283,1284],{"color":553,"icon":71,"title":286,"to":287},"For scripts, CLI tools, queues, and any TypeScript process.",[1174,1286,1288],{"color":553,"icon":453,"title":1287,"to":451},"Custom Integration","Build your own middleware with the evlog toolkit API.",[551,1290,1291,1292,542,1295,542,1298,542,1301,542,1304,1183,1307,996],{"color":1151,"icon":1152},"All frameworks support the same features: ",[557,1293,1294],{"href":45},"wide events",[557,1296,1297],{"href":50},"structured errors",[557,1299,1300],{"href":138},"drain adapters",[557,1302,1303],{"href":429},"enrichers",[557,1305,1306],{"href":60},"sampling",[557,1308,1309],{"href":324},"AI SDK integration",[565,1311,508],{"id":1312},"vite-plugin",[535,1314,1315,1316,1322],{},"For any Vite-based project, the ",[557,1317,1318,1321],{"href":509},[539,1319,1320],{},"evlog\u002Fvite"," plugin"," adds build-time optimizations:",[1324,1325,1326,1337,1347],"ul",{},[1327,1328,1329,1332,1333,1336],"li",{},[989,1330,1331],{},"Auto-initialization",": no ",[539,1334,1335],{},"initLogger()"," call needed",[1327,1338,1339,1342,1343,1346],{},[989,1340,1341],{},"Debug stripping",": ",[539,1344,1345],{},"log.debug()"," removed from production builds",[1327,1348,1349,1352,1353,1356],{},[989,1350,1351],{},"Source location",": inject ",[539,1354,1355],{},"__source: 'file:line'"," into log calls",[535,1358,1359,1360,1362],{},"Works with SvelteKit, Hono (via vite-node), and any Vite-powered setup. Nuxt users get these features via the ",[539,1361,607],{}," module options.",{"title":1364,"searchDepth":1365,"depth":1365,"links":1366},"",2,[1367,1368,1373,1374,1375],{"id":567,"depth":1365,"text":128},{"id":983,"depth":1365,"text":984,"children":1369},[1370,1372],{"id":991,"depth":1371,"text":1000},3,{"id":1066,"depth":1371,"text":1067},{"id":1168,"depth":1365,"text":1169},{"id":1228,"depth":1365,"text":1229},{"id":1312,"depth":1365,"text":508},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.","md",null,{},{"title":128,"icon":224},{"title":530,"description":1376},"lhuuO19gJrHht_1EpiM_NGCFnhcSkaffp7dZBc7XK7Y",[1384,1386],{"title":212,"path":213,"stem":214,"description":1385,"icon":215,"children":-1},"Store wide events in an in-memory ring buffer. Works in any runtime — including Cloudflare Workers (workerd) — where the file system is unavailable.",{"title":226,"path":227,"stem":228,"description":1387,"icon":229,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.",1786793457300]