[{"data":1,"prerenderedAt":872},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-overview":277,"-frameworks-overview-surround":867},[4,30,65,105,188,247,263],{"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},"Logging","\u002Flogging","2.logging",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":61,"path":62,"stem":63,"icon":64},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[70,75,80,85,90,95,100],{"title":71,"path":72,"stem":73,"icon":74},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":76,"path":77,"stem":78,"icon":79},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":81,"path":82,"stem":83,"icon":84},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":86,"path":87,"stem":88,"icon":89},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":91,"path":92,"stem":93,"icon":94},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices","i-lucide-shield-check",{"title":96,"path":97,"stem":98,"icon":99},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":101,"path":102,"stem":103,"icon":104},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Frameworks","\u002Fframeworks","4.frameworks",[110,114,119,124,129,134,139,144,149,154,159,164,169,174,178,183],{"title":36,"path":111,"stem":112,"icon":113},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":115,"path":116,"stem":117,"icon":118},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":120,"path":121,"stem":122,"icon":123},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":125,"path":126,"stem":127,"icon":128},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":130,"path":131,"stem":132,"icon":133},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":135,"path":136,"stem":137,"icon":138},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":140,"path":141,"stem":142,"icon":143},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":145,"path":146,"stem":147,"icon":148},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":150,"path":151,"stem":152,"icon":153},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":155,"path":156,"stem":157,"icon":158},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":160,"path":161,"stem":162,"icon":163},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":165,"path":166,"stem":167,"icon":168},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":170,"path":171,"stem":172,"icon":173},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":175,"path":176,"stem":177,"icon":89},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":179,"path":180,"stem":181,"icon":182},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":184,"path":185,"stem":186,"icon":187},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":189,"path":190,"stem":191,"children":192,"page":29},"Adapters","\u002Fadapters","5.adapters",[193,197,202,207,212,217,222,227,232,237,242],{"title":36,"path":194,"stem":195,"icon":196},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":198,"path":199,"stem":200,"icon":201},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F10.pipeline","i-lucide-workflow",{"title":203,"path":204,"stem":205,"icon":206},"Browser","\u002Fadapters\u002Fbrowser","5.adapters\u002F11.browser","i-lucide-globe",{"title":208,"path":209,"stem":210,"icon":211},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":213,"path":214,"stem":215,"icon":216},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":218,"path":219,"stem":220,"icon":221},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":223,"path":224,"stem":225,"icon":226},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":228,"path":229,"stem":230,"icon":231},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":233,"path":234,"stem":235,"icon":236},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":238,"path":239,"stem":240,"icon":241},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F8.hyperdx","i-custom-hyperdx",{"title":243,"path":244,"stem":245,"icon":246},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F9.custom","i-lucide-code",{"title":248,"path":249,"stem":250,"children":251,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[252,255,259],{"title":36,"path":253,"stem":254,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":256,"path":257,"stem":258,"icon":187},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":260,"path":261,"stem":262,"icon":246},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":264,"path":265,"stem":266,"children":267,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[268,272],{"title":36,"path":269,"stem":270,"icon":271},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":273,"path":274,"stem":275,"icon":276},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":278,"title":279,"body":280,"description":860,"extension":861,"links":862,"meta":863,"navigation":864,"path":111,"seo":865,"stem":112,"__hash__":866},"docs\u002F4.frameworks\u002F00.overview.md","Framework Integrations",{"type":281,"value":282,"toc":852},"minimark",[283,299,303,672,676,732,736,775,798,801,811,846],[284,285,286,287,291,292,291,295,298],"p",{},"evlog provides native integrations for every major TypeScript framework. The same core API (",[288,289,290],"code",{},"log.set()",", ",[288,293,294],{},"createError()",[288,296,297],{},"parseError()",") works identically everywhere. Only the setup differs.",[300,301,36],"h2",{"id":302},"overview",[304,305,306,328],"table",{},[307,308,309],"thead",{},[310,311,312,316,319,322,325],"tr",{},[313,314,315],"th",{},"Framework",[313,317,318],{},"Import",[313,320,321],{},"Type",[313,323,324],{},"Logger Access",[313,326,327],{},"Status",[329,330,331,355,376,400,419,439,457,480,499,521,541,564,587,607,631,650],"tbody",{},[310,332,333,339,344,347,352],{},[334,335,336],"td",{},[337,338,115],"a",{"href":116},[334,340,341],{},[288,342,343],{},"evlog\u002Fnuxt",[334,345,346],{},"Module",[334,348,349],{},[288,350,351],{},"useLogger(event)",[334,353,354],{},"Stable",[310,356,357,361,366,369,374],{},[334,358,359],{},[337,360,120],{"href":121},[334,362,363],{},[288,364,365],{},"evlog\u002Fnext",[334,367,368],{},"Factory",[334,370,371],{},[288,372,373],{},"useLogger()",[334,375,354],{},[310,377,378,382,387,390,398],{},[334,379,380],{},[337,381,125],{"href":126},[334,383,384],{},[288,385,386],{},"evlog\u002Fsveltekit",[334,388,389],{},"Hooks",[334,391,392,395,396],{},[288,393,394],{},"event.locals.log"," \u002F ",[288,397,373],{},[334,399,354],{},[310,401,402,406,411,413,417],{},[334,403,404],{},[337,405,130],{"href":131},[334,407,408],{},[288,409,410],{},"evlog\u002Fnitro",[334,412,346],{},[334,414,415],{},[288,416,351],{},[334,418,354],{},[310,420,421,425,430,432,437],{},[334,422,423],{},[337,424,135],{"href":136},[334,426,427],{},[288,428,429],{},"evlog\u002Fnitro\u002Fv3",[334,431,346],{},[334,433,434],{},[288,435,436],{},"useRequest().context.log",[334,438,354],{},[310,440,441,446,450,452,455],{},[334,442,443],{},[337,444,445],{"href":136},"TanStack Router",[334,447,448],{},[288,449,429],{},[334,451,346],{},[334,453,454],{},"Via TanStack Start (uses Nitro v3)",[334,456,354],{},[310,458,459,463,468,471,478],{},[334,460,461],{},[337,462,165],{"href":166},[334,464,465],{},[288,466,467],{},"evlog\u002Freact-router",[334,469,470],{},"Middleware",[334,472,473,395,476],{},[288,474,475],{},"context.get(loggerContext)",[288,477,373],{},[334,479,354],{},[310,481,482,486,491,493,497],{},[334,483,484],{},[337,485,140],{"href":141},[334,487,488],{},[288,489,490],{},"evlog\u002Fnestjs",[334,492,346],{},[334,494,495],{},[288,496,373],{},[334,498,354],{},[310,500,501,505,510,512,519],{},[334,502,503],{},[337,504,145],{"href":146},[334,506,507],{},[288,508,509],{},"evlog\u002Fexpress",[334,511,470],{},[334,513,514,395,517],{},[288,515,516],{},"req.log",[288,518,373],{},[334,520,354],{},[310,522,523,527,532,534,539],{},[334,524,525],{},[337,526,150],{"href":151},[334,528,529],{},[288,530,531],{},"evlog\u002Fhono",[334,533,470],{},[334,535,536],{},[288,537,538],{},"c.get('log')",[334,540,354],{},[310,542,543,547,552,555,562],{},[334,544,545],{},[337,546,155],{"href":156},[334,548,549],{},[288,550,551],{},"evlog\u002Ffastify",[334,553,554],{},"Plugin",[334,556,557,395,560],{},[288,558,559],{},"request.log",[288,561,373],{},[334,563,354],{},[310,565,566,570,575,577,585],{},[334,567,568],{},[337,569,160],{"href":161},[334,571,572],{},[288,573,574],{},"evlog\u002Felysia",[334,576,554],{},[334,578,579,582,583],{},[288,580,581],{},"log"," (context) \u002F ",[288,584,373],{},[334,586,354],{},[310,588,589,593,598,600,605],{},[334,590,591],{},[337,592,170],{"href":171},[334,594,595],{},[288,596,597],{},"evlog\u002Fworkers",[334,599,368],{},[334,601,602],{},[288,603,604],{},"createWorkersLogger()",[334,606,354],{},[310,608,609,613,618,621,629],{},[334,610,611],{},[337,612,175],{"href":176},[334,614,615],{},[288,616,617],{},"evlog",[334,619,620],{},"Manual",[334,622,623,395,626],{},[288,624,625],{},"createLogger()",[288,627,628],{},"createRequestLogger()",[334,630,354],{},[310,632,633,637,641,643,647],{},[334,634,635],{},[337,636,179],{"href":180},[334,638,639],{},[288,640,617],{},[334,642,620],{},[334,644,645],{},[288,646,628],{},[334,648,649],{},"Guide",[310,651,652,656,661,664,669],{},[334,653,654],{},[337,655,260],{"href":185},[334,657,658],{},[288,659,660],{},"evlog\u002Ftoolkit",[334,662,663],{},"Build your own",[334,665,666],{},[288,667,668],{},"createMiddlewareLogger()",[334,670,671],{},"Beta",[300,673,675],{"id":674},"full-stack-frameworks","Full-Stack Frameworks",[677,678,679,695,705,711,714,717,726],"card-group",{},[680,681,683,684,291,687,690,691,694],"card",{"color":682,"icon":118,"title":115,"to":116},"neutral","Auto-imported ",[288,685,686],{},"useLogger",[288,688,689],{},"createError",", and ",[288,692,693],{},"parseError",". Zero config.",[680,696,697,700,701,704],{"color":682,"icon":123,"title":120,"to":121},[288,698,699],{},"createEvlog()"," factory with ",[288,702,703],{},"withEvlog()"," handler wrapper and client provider.",[680,706,707,708,710],{"color":682,"icon":128,"title":125,"to":126},"Handle and handleError hooks with request-scoped logger on ",[288,709,394],{},".",[680,712,713],{"color":682,"icon":133,"title":130,"to":131},"Module for both Nitro v2 and v3 with plugin-based drain and enrichment hooks.",[680,715,716],{"color":682,"icon":138,"title":135,"to":136},"Uses Nitro v3 module with async context for seamless logging in server functions. Also covers TanStack Router (full-stack mode).",[680,718,719,720,722,723,725],{"color":682,"icon":168,"title":165,"to":166},"Middleware with ",[288,721,475],{}," and ",[288,724,373],{}," for loaders and services.",[680,727,728,731],{"color":682,"icon":143,"title":140,"to":141},[288,729,730],{},"EvlogModule.forRoot()"," with global middleware, exception filter, and async config.",[300,733,735],{"id":734},"server-frameworks","Server Frameworks",[677,737,738,743,752,758,766,769,772],{},[680,739,719,740,742],{"color":682,"icon":148,"title":145,"to":146},[288,741,516],{}," and 4-argument error handler.",[680,744,745,746,748,749,710],{"color":682,"icon":153,"title":150,"to":151},"Middleware with typed ",[288,747,538],{}," via ",[288,750,751],{},"EvlogVariables",[680,753,754,755,757],{"color":682,"icon":158,"title":155,"to":156},"Plugin with ",[288,756,559],{}," that shadows Fastify's built-in pino logger.",[680,759,754,760,762,763,710],{"color":682,"icon":163,"title":160,"to":161},[288,761,581],{}," in route context via Elysia's ",[288,764,765],{},"derive",[680,767,768],{"color":682,"icon":173,"title":170,"to":171},"Factory for creating request-scoped loggers with Cloudflare-specific context.",[680,770,771],{"color":682,"icon":89,"title":175,"to":176},"For scripts, CLI tools, queues, and any TypeScript process.",[680,773,774],{"color":682,"icon":187,"title":184,"to":185},"Build your own middleware with the evlog toolkit API.",[776,777,779,780,291,783,291,786,291,789,291,792,690,795,710],"callout",{"color":778,"icon":13},"info","All frameworks support the same features: ",[337,781,782],{"href":47},"wide events",[337,784,785],{"href":52},"structured errors",[337,787,788],{"href":194},"drain adapters",[337,790,791],{"href":253},"enrichers",[337,793,794],{"href":82},"sampling",[337,796,797],{"href":62},"AI SDK integration",[300,799,101],{"id":800},"vite-plugin",[284,802,803,804,810],{},"For any Vite-based project, the ",[337,805,806,809],{"href":102},[288,807,808],{},"evlog\u002Fvite"," plugin"," adds build-time optimizations:",[812,813,814,826,836],"ul",{},[815,816,817,821,822,825],"li",{},[818,819,820],"strong",{},"Auto-initialization",": no ",[288,823,824],{},"initLogger()"," call needed",[815,827,828,831,832,835],{},[818,829,830],{},"Debug stripping",": ",[288,833,834],{},"log.debug()"," removed from production builds",[815,837,838,841,842,845],{},[818,839,840],{},"Source location",": inject ",[288,843,844],{},"__source: 'file:line'"," into log calls",[284,847,848,849,851],{},"Works with SvelteKit, Hono (via vite-node), and any Vite-powered setup. Nuxt users get these features via the ",[288,850,343],{}," module options.",{"title":853,"searchDepth":854,"depth":854,"links":855},"",2,[856,857,858,859],{"id":302,"depth":854,"text":36},{"id":674,"depth":854,"text":675},{"id":734,"depth":854,"text":735},{"id":800,"depth":854,"text":101},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.","md",null,{},{"title":36,"icon":113},{"title":279,"description":860},"K9dLd4k2DCEnGj3Rl3LHwNW-2wTo6SalVhaWaNFHXW4",[868,870],{"title":101,"path":102,"stem":103,"description":869,"icon":104,"children":-1},"Build-time optimizations for any Vite-based framework. Auto-init, debug stripping, source location injection, and optional auto-imports.",{"title":115,"path":116,"stem":117,"description":871,"icon":118,"children":-1},"Automatic wide events, structured errors, drain adapters, enrichers, tail sampling, and client transport in Nuxt applications.",1775317371997]