[{"data":1,"prerenderedAt":524},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":243,"-getting-started-installation-surround":519},[4,30,110,159,213,229],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"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",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Frameworks","\u002Fframeworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100,105],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Fframeworks\u002Foverview","2.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","\u002Fframeworks\u002Fnuxt","2.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","\u002Fframeworks\u002Fnextjs","2.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","\u002Fframeworks\u002Fsveltekit","2.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","\u002Fframeworks\u002Fnitro","2.frameworks\u002F04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","2.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","\u002Fframeworks\u002Fnestjs","2.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","\u002Fframeworks\u002Fexpress","2.frameworks\u002F07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","\u002Fframeworks\u002Fhono","2.frameworks\u002F08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","\u002Fframeworks\u002Ffastify","2.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","\u002Fframeworks\u002Felysia","2.frameworks\u002F10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F11.cloudflare-workers","i-simple-icons-cloudflare",{"title":96,"path":97,"stem":98,"icon":99},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F12.standalone","i-simple-icons-typescript",{"title":101,"path":102,"stem":103,"icon":104},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F13.astro","i-simple-icons-astro",{"title":106,"path":107,"stem":108,"icon":109},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F14.custom-integration","i-lucide-puzzle",{"title":111,"path":112,"stem":113,"children":114,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[115,120,125,130,135,139,144,149,154],{"title":116,"path":117,"stem":118,"icon":119},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":121,"path":122,"stem":123,"icon":124},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":126,"path":127,"stem":128,"icon":129},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":131,"path":132,"stem":133,"icon":134},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":136,"path":137,"stem":138,"icon":99},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":140,"path":141,"stem":142,"icon":143},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":145,"path":146,"stem":147,"icon":148},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":150,"path":151,"stem":152,"icon":153},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F7.configuration","i-lucide-settings",{"title":155,"path":156,"stem":157,"icon":158},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F8.performance","i-lucide-gauge",{"title":160,"path":161,"stem":162,"children":163,"page":29},"Adapters","\u002Fadapters","4.adapters",[164,168,173,178,183,188,193,198,203,208],{"title":36,"path":165,"stem":166,"icon":167},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":169,"path":170,"stem":171,"icon":172},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F10.browser","i-lucide-globe",{"title":174,"path":175,"stem":176,"icon":177},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":179,"path":180,"stem":181,"icon":182},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":184,"path":185,"stem":186,"icon":187},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":189,"path":190,"stem":191,"icon":192},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":194,"path":195,"stem":196,"icon":197},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":199,"path":200,"stem":201,"icon":202},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":204,"path":205,"stem":206,"icon":207},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F8.custom","i-lucide-code",{"title":209,"path":210,"stem":211,"icon":212},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F9.pipeline","i-lucide-workflow",{"title":214,"path":215,"stem":216,"children":217,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[218,221,225],{"title":36,"path":219,"stem":220,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":222,"path":223,"stem":224,"icon":109},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":226,"path":227,"stem":228,"icon":207},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":230,"path":231,"stem":232,"children":233,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[234,238],{"title":36,"path":235,"stem":236,"icon":237},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":244,"title":245,"body":246,"description":510,"extension":511,"links":512,"meta":515,"navigation":516,"path":16,"seo":517,"stem":17,"__hash__":518},"docs\u002F1.getting-started\u002F2.installation.md","Install evlog",{"type":247,"value":248,"toc":500},"minimark",[249,253,258,330,335,338,357,364,368,371,445,461,465,468,473,477,496],[250,251,252],"p",{},"evlog supports Nuxt, Next.js, SvelteKit, Nitro, NestJS, and any TypeScript server framework.",[254,255,257],"h2",{"id":256},"install","Install",[259,260,261,287,302,316],"code-group",{},[262,263,269],"pre",{"className":264,"code":265,"filename":266,"language":267,"meta":268,"style":268},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add evlog\n","pnpm","bash","",[270,271,272],"code",{"__ignoreMap":268},[273,274,277,280,284],"span",{"class":275,"line":276},"line",1,[273,278,266],{"class":279},"sBMFI",[273,281,283],{"class":282},"sfazB"," add",[273,285,286],{"class":282}," evlog\n",[262,288,291],{"className":264,"code":289,"filename":290,"language":267,"meta":268,"style":268},"npm install evlog\n","npm",[270,292,293],{"__ignoreMap":268},[273,294,295,297,300],{"class":275,"line":276},[273,296,290],{"class":279},[273,298,299],{"class":282}," install",[273,301,286],{"class":282},[262,303,306],{"className":264,"code":304,"filename":305,"language":267,"meta":268,"style":268},"yarn add evlog\n","yarn",[270,307,308],{"__ignoreMap":268},[273,309,310,312,314],{"class":275,"line":276},[273,311,305],{"class":279},[273,313,283],{"class":282},[273,315,286],{"class":282},[262,317,320],{"className":264,"code":318,"filename":319,"language":267,"meta":268,"style":268},"bun add evlog\n","bun",[270,321,322],{"__ignoreMap":268},[273,323,324,326,328],{"class":275,"line":276},[273,325,319],{"class":279},[273,327,283],{"class":282},[273,329,286],{"class":282},[331,332,334],"h3",{"id":333},"using-agent-skills","Using Agent Skills",[250,336,337],{},"If you use an AI assistant (Claude Code, Cursor, etc.), install the evlog skill for guided setup and code review:",[262,339,342],{"className":264,"code":340,"filename":341,"language":267,"meta":268,"style":268},"npx skills add hugorcd\u002Fevlog\n","Terminal",[270,343,344],{"__ignoreMap":268},[273,345,346,349,352,354],{"class":275,"line":276},[273,347,348],{"class":279},"npx",[273,350,351],{"class":282}," skills",[273,353,283],{"class":282},[273,355,356],{"class":282}," hugorcd\u002Fevlog\n",[250,358,359,360,363],{},"Your AI assistant can then help you set up evlog, review your logging patterns, and migrate existing code to wide events. See ",[361,362,25],"a",{"href":26}," for details.",[254,365,367],{"id":366},"choose-your-framework","Choose Your Framework",[250,369,370],{},"After installing the package, follow the setup guide for your framework:",[372,373,374,391,401,407,410,413,419,425,430,436,442],"card-group",{},[375,376,378,379,382,383,386,387,390],"card",{"color":377,"icon":44,"title":41,"to":42},"neutral","Module with auto-imported ",[270,380,381],{},"useLogger",", ",[270,384,385],{},"createError",", and ",[270,388,389],{},"parseError",".",[375,392,393,396,397,400],{"color":377,"icon":49,"title":46,"to":47},[270,394,395],{},"createEvlog()"," factory with ",[270,398,399],{},"withEvlog()"," handler wrapper.",[375,402,403,404,390],{"color":377,"icon":54,"title":51,"to":52},"Handle and handleError hooks with ",[270,405,406],{},"event.locals.log",[375,408,409],{"color":377,"icon":59,"title":56,"to":57},"Module for Nitro v2 and v3 with plugin-based hooks.",[375,411,412],{"color":377,"icon":64,"title":61,"to":62},"Uses Nitro v3 module with async context.",[375,414,415,418],{"color":377,"icon":69,"title":66,"to":67},[270,416,417],{},"EvlogModule.forRoot()"," with global middleware.",[375,420,421,422,390],{"color":377,"icon":74,"title":71,"to":72},"Middleware with ",[270,423,424],{},"req.log",[375,426,421,427,390],{"color":377,"icon":79,"title":76,"to":77},[270,428,429],{},"c.get('log')",[375,431,432,433,390],{"color":377,"icon":84,"title":81,"to":82},"Plugin with ",[270,434,435],{},"request.log",[375,437,432,438,441],{"color":377,"icon":89,"title":86,"to":87},[270,439,440],{},"log"," in route context.",[375,443,444],{"color":377,"icon":94,"title":91,"to":92},"Factory for request-scoped loggers.",[446,447,449,450,453,454,382,457,386,459,390],"callout",{"color":377,"icon":448},"i-lucide-arrow-right","See the full ",[361,451,452],{"href":37},"Framework Integrations"," page for a comparison table and all available integrations including ",[361,455,456],{"href":97},"Standalone TypeScript",[361,458,101],{"href":102},[361,460,106],{"href":107},[254,462,464],{"id":463},"typescript-configuration","TypeScript Configuration",[250,466,467],{},"evlog ships with full TypeScript type definitions. No additional configuration is required.",[446,469,472],{"color":470,"icon":471},"success","i-lucide-check","evlog requires TypeScript 5.0 or higher for optimal type inference.",[254,474,476],{"id":475},"next-steps","Next Steps",[478,479,480,486,491],"ul",{},[481,482,483,485],"li",{},[361,484,20],{"href":21}," - Learn the core concepts and start using evlog",[481,487,488,490],{},[361,489,121],{"href":122}," - Understand the wide event pattern",[481,492,493,495],{},[361,494,160],{"href":165}," - Send logs to Axiom, PostHog, Sentry, and more",[497,498,499],"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":268,"searchDepth":501,"depth":501,"links":502},2,[503,507,508,509],{"id":256,"depth":501,"text":257,"children":504},[505],{"id":333,"depth":506,"text":334},3,{"id":366,"depth":501,"text":367},{"id":463,"depth":501,"text":464},{"id":475,"depth":501,"text":476},"Install evlog in your TypeScript project.","md",[513],{"label":31,"icon":39,"to":37,"color":377,"variant":514},"subtle",{},{"title":15,"icon":18},{"title":245,"description":510},"LE2pyxwIHZh9ZRO9lZtaeY8GGW-mhlnOFQmJvjth4hE",[520,522],{"title":10,"path":11,"stem":12,"description":521,"icon":13,"children":-1},"A TypeScript logging library focused on wide events and structured error handling. Replace scattered logs with one comprehensive event per request.",{"title":20,"path":21,"stem":22,"description":523,"icon":23,"children":-1},"Get up and running with evlog in minutes. Learn useLogger, createError, parseError, and the log API for wide events and structured errors.",1773505330317]