[{"data":1,"prerenderedAt":633},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":308,"-getting-started-installation-surround":628},[4,35,80,124,212,292],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,75],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"icon":69},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":71,"path":72,"stem":73,"icon":74},"Better Auth Integration","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth","i-simple-icons-betterauth",{"title":76,"path":77,"stem":78,"icon":79},"Audit Logs","\u002Flogging\u002Faudit","2.logging\u002F7.audit","i-lucide-shield-check",{"title":81,"path":82,"stem":83,"children":84,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[85,90,95,100,105,109,114,119],{"title":86,"path":87,"stem":88,"icon":89},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":91,"path":92,"stem":93,"icon":94},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":96,"path":97,"stem":98,"icon":99},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":101,"path":102,"stem":103,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":79},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":110,"path":111,"stem":112,"icon":113},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":115,"path":116,"stem":117,"icon":118},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":120,"path":121,"stem":122,"icon":123},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":125,"path":126,"stem":127,"children":128,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[129,133,138,143,148,153,158,163,168,173,178,183,188,193,197,202,207],{"title":41,"path":130,"stem":131,"icon":132},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":134,"path":135,"stem":136,"icon":137},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":139,"path":140,"stem":141,"icon":142},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":144,"path":145,"stem":146,"icon":147},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":149,"path":150,"stem":151,"icon":152},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":154,"path":155,"stem":156,"icon":157},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":159,"path":160,"stem":161,"icon":162},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":164,"path":165,"stem":166,"icon":167},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":169,"path":170,"stem":171,"icon":172},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":174,"path":175,"stem":176,"icon":177},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":179,"path":180,"stem":181,"icon":182},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":184,"path":185,"stem":186,"icon":187},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":189,"path":190,"stem":191,"icon":192},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":194,"path":195,"stem":196,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":198,"path":199,"stem":200,"icon":201},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":203,"path":204,"stem":205,"icon":206},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":208,"path":209,"stem":210,"icon":211},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":213,"path":214,"stem":215,"children":216,"page":34},"Adapters","\u002Fadapters","6.adapters",[217,257,272],{"title":218,"path":219,"stem":220,"children":221,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[222,227,232,237,242,247,252],{"title":223,"path":224,"stem":225,"icon":226},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":228,"path":229,"stem":230,"icon":231},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":233,"path":234,"stem":235,"icon":236},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":238,"path":239,"stem":240,"icon":241},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":243,"path":244,"stem":245,"icon":246},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":248,"path":249,"stem":250,"icon":251},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":253,"path":254,"stem":255,"icon":256},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":258,"path":259,"stem":260,"children":261,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[262,267],{"title":263,"path":264,"stem":265,"icon":266},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":268,"path":269,"stem":270,"icon":271},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":273,"path":274,"stem":275,"children":276,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[277,282,287],{"title":278,"path":279,"stem":280,"icon":281},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":283,"path":284,"stem":285,"icon":286},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":288,"path":289,"stem":290,"icon":291},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom","i-lucide-code",{"title":293,"path":294,"stem":295,"children":296,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[297,300,304],{"title":41,"path":298,"stem":299,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":301,"path":302,"stem":303,"icon":211},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":305,"path":306,"stem":307,"icon":291},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":309,"title":310,"body":311,"description":619,"extension":620,"links":621,"meta":624,"navigation":625,"path":16,"seo":626,"stem":17,"__hash__":627},"docs\u002F1.getting-started\u002F2.installation.md","Install evlog",{"type":312,"value":313,"toc":609},"minimark",[314,318,359,364,436,441,444,463,469,473,476,555,571,575,578,583,587,605],[315,316,317],"p",{},"evlog supports Nuxt, Next.js, SvelteKit, Nitro, NestJS, and any TypeScript server framework.",[319,320,323,326,345],"prompt",{":actions":321,"description":322,"icon":18},"[\"copy\",\"cursor\",\"windsurf\"]","Install evlog in my project",[315,324,325],{},"Install evlog in my TypeScript project.",[327,328,329,333,336,339,342],"ul",{},[330,331,332],"li",{},"Detect the framework I'm using (Nuxt, Next.js, SvelteKit, Nitro, NestJS, Express, Hono, Fastify, Elysia, TanStack Start, React Router, Cloudflare Workers, or standalone)",[330,334,335],{},"Install evlog with my package manager: pnpm add evlog (or npm\u002Fyarn\u002Fbun)",[330,337,338],{},"Wire up the framework-specific integration (module, plugin, or middleware)",[330,340,341],{},"Set evlog.env.service to my app name",[330,343,344],{},"Confirm useLogger, createError, and parseError are available",[315,346,347,348,354,355],{},"Docs: ",[349,350,351],"a",{"href":351,"rel":352},"https:\u002F\u002Fwww.evlog.dev\u002Fgetting-started\u002Finstallation",[353],"nofollow","\nFrameworks: ",[349,356,357],{"href":357,"rel":358},"https:\u002F\u002Fwww.evlog.dev\u002Fframeworks\u002Foverview",[353],[360,361,363],"h2",{"id":362},"install","Install",[365,366,367,393,407,421],"code-group",{},[368,369,375],"pre",{"className":370,"code":371,"filename":372,"language":373,"meta":374,"style":374},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[376,377,378],"code",{"__ignoreMap":374},[379,380,383,386,390],"span",{"class":381,"line":382},"line",1,[379,384,372],{"class":385},"sBMFI",[379,387,389],{"class":388},"sfazB"," add",[379,391,392],{"class":388}," evlog\n",[368,394,397],{"className":370,"code":395,"filename":396,"language":373,"meta":374,"style":374},"bun add evlog\n","bun",[376,398,399],{"__ignoreMap":374},[379,400,401,403,405],{"class":381,"line":382},[379,402,396],{"class":385},[379,404,389],{"class":388},[379,406,392],{"class":388},[368,408,411],{"className":370,"code":409,"filename":410,"language":373,"meta":374,"style":374},"yarn add evlog\n","yarn",[376,412,413],{"__ignoreMap":374},[379,414,415,417,419],{"class":381,"line":382},[379,416,410],{"class":385},[379,418,389],{"class":388},[379,420,392],{"class":388},[368,422,425],{"className":370,"code":423,"filename":424,"language":373,"meta":374,"style":374},"npm install evlog\n","npm",[376,426,427],{"__ignoreMap":374},[379,428,429,431,434],{"class":381,"line":382},[379,430,424],{"class":385},[379,432,433],{"class":388}," install",[379,435,392],{"class":388},[437,438,440],"h3",{"id":439},"using-agent-skills","Using Agent Skills",[315,442,443],{},"If you use an AI assistant (Claude Code, Cursor, etc.), install the evlog skill for guided setup and code review:",[368,445,448],{"className":370,"code":446,"filename":447,"language":373,"meta":374,"style":374},"npx skills add https:\u002F\u002Fwww.evlog.dev\n","Terminal",[376,449,450],{"__ignoreMap":374},[379,451,452,455,458,460],{"class":381,"line":382},[379,453,454],{"class":385},"npx",[379,456,457],{"class":388}," skills",[379,459,389],{"class":388},[379,461,462],{"class":388}," https:\u002F\u002Fwww.evlog.dev\n",[315,464,465,466,468],{},"Your AI assistant can then help you set up evlog, review your logging patterns, and migrate existing code to wide events. See ",[349,467,25],{"href":26}," for details.",[360,470,472],{"id":471},"choose-your-framework","Choose Your Framework",[315,474,475],{},"After installing the package, follow the setup guide for your framework:",[477,478,479,496,506,512,515,518,524,530,535,540,546,552],"card-group",{},[480,481,483,484,487,488,491,492,495],"card",{"color":482,"icon":137,"title":134,"to":135},"neutral","Module with auto-imported ",[376,485,486],{},"useLogger",", ",[376,489,490],{},"createError",", and ",[376,493,494],{},"parseError",".",[480,497,498,501,502,505],{"color":482,"icon":142,"title":139,"to":140},[376,499,500],{},"createEvlog()"," factory with ",[376,503,504],{},"withEvlog()"," handler wrapper.",[480,507,508,509,495],{"color":482,"icon":147,"title":144,"to":145},"Handle and handleError hooks with ",[376,510,511],{},"event.locals.log",[480,513,514],{"color":482,"icon":152,"title":149,"to":150},"Module for Nitro v2 and v3 with plugin-based hooks.",[480,516,517],{"color":482,"icon":157,"title":154,"to":155},"Uses Nitro v3 module with async context.",[480,519,520,521,495],{"color":482,"icon":187,"title":184,"to":185},"Middleware with ",[376,522,523],{},"context.get(loggerContext)",[480,525,526,529],{"color":482,"icon":162,"title":159,"to":160},[376,527,528],{},"EvlogModule.forRoot()"," with global middleware.",[480,531,520,532,495],{"color":482,"icon":167,"title":164,"to":165},[376,533,534],{},"req.log",[480,536,520,537,495],{"color":482,"icon":172,"title":169,"to":170},[376,538,539],{},"c.get('log')",[480,541,542,543,495],{"color":482,"icon":177,"title":174,"to":175},"Plugin with ",[376,544,545],{},"request.log",[480,547,542,548,551],{"color":482,"icon":182,"title":179,"to":180},[376,549,550],{},"log"," in route context.",[480,553,554],{"color":482,"icon":192,"title":189,"to":190},"Factory for request-scoped loggers.",[556,557,559,560,563,564,487,567,491,569,495],"callout",{"color":482,"icon":558},"i-lucide-arrow-right","See the full ",[349,561,562],{"href":130},"Framework Integrations"," page for a comparison table and all available integrations including ",[349,565,566],{"href":195},"Standalone TypeScript",[349,568,198],{"href":199},[349,570,208],{"href":209},[360,572,574],{"id":573},"typescript-configuration","TypeScript Configuration",[315,576,577],{},"evlog ships with full TypeScript type definitions. No additional configuration is required.",[556,579,582],{"color":580,"icon":581},"success","i-lucide-check","evlog requires TypeScript 5.0 or higher for optimal type inference.",[360,584,586],{"id":585},"next-steps","Next Steps",[327,588,589,594,599],{},[330,590,591,593],{},[349,592,20],{"href":21}," - Learn the core concepts and start using evlog",[330,595,596,598],{},[349,597,51],{"href":52}," - Understand the wide event pattern",[330,600,601,604],{},[349,602,213],{"href":603},"\u002Fadapters\u002Foverview"," - Send logs to Axiom, PostHog, Sentry, and more",[606,607,608],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}",{"title":374,"searchDepth":610,"depth":610,"links":611},2,[612,616,617,618],{"id":362,"depth":610,"text":363,"children":613},[614],{"id":439,"depth":615,"text":440},3,{"id":471,"depth":610,"text":472},{"id":573,"depth":610,"text":574},{"id":585,"depth":610,"text":586},"Install evlog in your TypeScript project. Supports Nuxt, Next.js, SvelteKit, Hono, Express, Fastify, Elysia, NestJS, and standalone scripts.","md",[622],{"label":125,"icon":132,"to":130,"color":482,"variant":623},"subtle",{},{"title":15,"icon":18},{"title":310,"description":619},"3IgdeZXZpO_E-0MMSwfl4gRd_-JqRWDwaJZWgYYE5lc",[629,631],{"title":10,"path":11,"stem":12,"description":630,"icon":13,"children":-1},"A modern TypeScript logger built for everything you ship. Simple structured logs, wide events, and structured errors in one API — drop-in for console.log, pino, or consola.",{"title":20,"path":21,"stem":22,"description":632,"icon":23,"children":-1},"Get up and running with evlog in minutes. Learn the log API, createLogger for wide events, useLogger for requests, and structured errors.",1777667163418]