[{"data":1,"prerenderedAt":732},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-overview":243,"-frameworks-overview-surround":727},[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":720,"extension":721,"links":722,"meta":723,"navigation":724,"path":37,"seo":725,"stem":38,"__hash__":726},"docs\u002F2.frameworks\u002F00.overview.md","Framework Integrations",{"type":247,"value":248,"toc":713},"minimark",[249,265,269,598,602,649,653,693],[250,251,252,253,257,258,257,261,264],"p",{},"evlog provides native integrations for every major TypeScript framework. The same core API (",[254,255,256],"code",{},"log.set()",", ",[254,259,260],{},"createError()",[254,262,263],{},"parseError()",") works identically everywhere. Only the setup differs.",[266,267,36],"h2",{"id":268},"overview",[270,271,272,294],"table",{},[273,274,275],"thead",{},[276,277,278,282,285,288,291],"tr",{},[279,280,281],"th",{},"Framework",[279,283,284],{},"Import",[279,286,287],{},"Type",[279,289,290],{},"Logger Access",[279,292,293],{},"Status",[295,296,297,321,342,366,385,405,424,447,467,490,513,533,557,576],"tbody",{},[276,298,299,305,310,313,318],{},[300,301,302],"td",{},[303,304,41],"a",{"href":42},[300,306,307],{},[254,308,309],{},"evlog\u002Fnuxt",[300,311,312],{},"Module",[300,314,315],{},[254,316,317],{},"useLogger(event)",[300,319,320],{},"Stable",[276,322,323,327,332,335,340],{},[300,324,325],{},[303,326,46],{"href":47},[300,328,329],{},[254,330,331],{},"evlog\u002Fnext",[300,333,334],{},"Factory",[300,336,337],{},[254,338,339],{},"useLogger()",[300,341,320],{},[276,343,344,348,353,356,364],{},[300,345,346],{},[303,347,51],{"href":52},[300,349,350],{},[254,351,352],{},"evlog\u002Fsveltekit",[300,354,355],{},"Hooks",[300,357,358,361,362],{},[254,359,360],{},"event.locals.log"," \u002F ",[254,363,339],{},[300,365,320],{},[276,367,368,372,377,379,383],{},[300,369,370],{},[303,371,56],{"href":57},[300,373,374],{},[254,375,376],{},"evlog\u002Fnitro",[300,378,312],{},[300,380,381],{},[254,382,317],{},[300,384,320],{},[276,386,387,391,396,398,403],{},[300,388,389],{},[303,390,61],{"href":62},[300,392,393],{},[254,394,395],{},"evlog\u002Fnitro\u002Fv3",[300,397,312],{},[300,399,400],{},[254,401,402],{},"useRequest().context.log",[300,404,320],{},[276,406,407,411,416,418,422],{},[300,408,409],{},[303,410,66],{"href":67},[300,412,413],{},[254,414,415],{},"evlog\u002Fnestjs",[300,417,312],{},[300,419,420],{},[254,421,339],{},[300,423,320],{},[276,425,426,430,435,438,445],{},[300,427,428],{},[303,429,71],{"href":72},[300,431,432],{},[254,433,434],{},"evlog\u002Fexpress",[300,436,437],{},"Middleware",[300,439,440,361,443],{},[254,441,442],{},"req.log",[254,444,339],{},[300,446,320],{},[276,448,449,453,458,460,465],{},[300,450,451],{},[303,452,76],{"href":77},[300,454,455],{},[254,456,457],{},"evlog\u002Fhono",[300,459,437],{},[300,461,462],{},[254,463,464],{},"c.get('log')",[300,466,320],{},[276,468,469,473,478,481,488],{},[300,470,471],{},[303,472,81],{"href":82},[300,474,475],{},[254,476,477],{},"evlog\u002Ffastify",[300,479,480],{},"Plugin",[300,482,483,361,486],{},[254,484,485],{},"request.log",[254,487,339],{},[300,489,320],{},[276,491,492,496,501,503,511],{},[300,493,494],{},[303,495,86],{"href":87},[300,497,498],{},[254,499,500],{},"evlog\u002Felysia",[300,502,480],{},[300,504,505,508,509],{},[254,506,507],{},"log"," (context) \u002F ",[254,510,339],{},[300,512,320],{},[276,514,515,519,524,526,531],{},[300,516,517],{},[303,518,91],{"href":92},[300,520,521],{},[254,522,523],{},"evlog\u002Fworkers",[300,525,334],{},[300,527,528],{},[254,529,530],{},"createWorkersLogger()",[300,532,320],{},[276,534,535,539,544,547,555],{},[300,536,537],{},[303,538,96],{"href":97},[300,540,541],{},[254,542,543],{},"evlog",[300,545,546],{},"Manual",[300,548,549,361,552],{},[254,550,551],{},"createLogger()",[254,553,554],{},"createRequestLogger()",[300,556,320],{},[276,558,559,563,567,569,573],{},[300,560,561],{},[303,562,101],{"href":102},[300,564,565],{},[254,566,543],{},[300,568,546],{},[300,570,571],{},[254,572,554],{},[300,574,575],{},"Guide",[276,577,578,582,587,590,595],{},[300,579,580],{},[303,581,226],{"href":107},[300,583,584],{},[254,585,586],{},"evlog\u002Ftoolkit",[300,588,589],{},"Build your own",[300,591,592],{},[254,593,594],{},"createMiddlewareLogger()",[300,596,597],{},"Beta",[266,599,601],{"id":600},"full-stack-frameworks","Full-Stack Frameworks",[603,604,605,621,631,637,640,643],"card-group",{},[606,607,609,610,257,613,616,617,620],"card",{"color":608,"icon":44,"title":41,"to":42},"neutral","Auto-imported ",[254,611,612],{},"useLogger",[254,614,615],{},"createError",", and ",[254,618,619],{},"parseError",". Zero config.",[606,622,623,626,627,630],{"color":608,"icon":49,"title":46,"to":47},[254,624,625],{},"createEvlog()"," factory with ",[254,628,629],{},"withEvlog()"," handler wrapper and client provider.",[606,632,633,634,636],{"color":608,"icon":54,"title":51,"to":52},"Handle and handleError hooks with request-scoped logger on ",[254,635,360],{},".",[606,638,639],{"color":608,"icon":59,"title":56,"to":57},"Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.",[606,641,642],{"color":608,"icon":64,"title":61,"to":62},"Uses Nitro v3 module with async context for seamless logging in server functions.",[606,644,645,648],{"color":608,"icon":69,"title":66,"to":67},[254,646,647],{},"EvlogModule.forRoot()"," with global middleware, exception filter, and async config.",[266,650,652],{"id":651},"server-frameworks","Server Frameworks",[603,654,655,661,670,676,684,687,690],{},[606,656,657,658,660],{"color":608,"icon":74,"title":71,"to":72},"Middleware with ",[254,659,442],{}," and 4-argument error handler.",[606,662,663,664,666,667,636],{"color":608,"icon":79,"title":76,"to":77},"Middleware with typed ",[254,665,464],{}," via ",[254,668,669],{},"EvlogVariables",[606,671,672,673,675],{"color":608,"icon":84,"title":81,"to":82},"Plugin with ",[254,674,485],{}," that shadows Fastify's built-in pino logger.",[606,677,672,678,680,681,636],{"color":608,"icon":89,"title":86,"to":87},[254,679,507],{}," in route context via Elysia's ",[254,682,683],{},"derive",[606,685,686],{"color":608,"icon":94,"title":91,"to":92},"Factory for creating request-scoped loggers with Cloudflare-specific context.",[606,688,689],{"color":608,"icon":99,"title":96,"to":97},"For scripts, CLI tools, queues, and any TypeScript process.",[606,691,692],{"color":608,"icon":109,"title":106,"to":107},"Build your own middleware with the evlog toolkit API.",[694,695,697,698,257,701,257,704,257,707,616,710,636],"callout",{"color":696,"icon":13},"info","All frameworks support the same features: ",[303,699,700],{"href":122},"wide events",[303,702,703],{"href":127},"structured errors",[303,705,706],{"href":165},"drain adapters",[303,708,709],{"href":219},"enrichers",[303,711,712],{"href":132},"sampling",{"title":714,"searchDepth":715,"depth":715,"links":716},"",2,[717,718,719],{"id":268,"depth":715,"text":36},{"id":600,"depth":715,"text":601},{"id":651,"depth":715,"text":652},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.","md",null,{},{"title":36,"icon":39},{"title":245,"description":720},"5_lGNJkWHqyVa1KylGAtjKSflooG0-nEkbXIgB9ksq0",[728,730],{"title":25,"path":26,"stem":27,"description":729,"icon":28,"children":-1},"AI-assisted code review and evlog adoption using Agent Skills. Let AI review your logging patterns and guide migration to wide events.",{"title":41,"path":42,"stem":43,"description":731,"icon":44,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.",1773505330317]