[{"data":1,"prerenderedAt":1253},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":258,"-getting-started-introduction-surround":1249},[4,30,115,174,228,244],{"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,110],{"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},"React Router","\u002Fframeworks\u002Freact-router","2.frameworks\u002F11.react-router","i-simple-icons-reactrouter",{"title":96,"path":97,"stem":98,"icon":99},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":101,"path":102,"stem":103,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F13.standalone","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":109},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F14.astro","i-simple-icons-astro",{"title":111,"path":112,"stem":113,"icon":114},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[120,125,130,135,140,145,150,154,159,164,169],{"title":121,"path":122,"stem":123,"icon":124},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":126,"path":127,"stem":128,"icon":129},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":131,"path":132,"stem":133,"icon":134},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F10.vite-plugin","i-custom-vite",{"title":136,"path":137,"stem":138,"icon":139},"AI SDK Integration","\u002Fcore-concepts\u002Fai-sdk","3.core-concepts\u002F11.ai-sdk","i-lucide-scan-eye",{"title":141,"path":142,"stem":143,"icon":144},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":146,"path":147,"stem":148,"icon":149},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":151,"path":152,"stem":153,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":155,"path":156,"stem":157,"icon":158},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":160,"path":161,"stem":162,"icon":163},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":165,"path":166,"stem":167,"icon":168},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F7.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F8.performance","i-lucide-gauge",{"title":175,"path":176,"stem":177,"children":178,"page":29},"Adapters","\u002Fadapters","4.adapters",[179,183,188,193,198,203,208,213,218,223],{"title":36,"path":180,"stem":181,"icon":182},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":184,"path":185,"stem":186,"icon":187},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F10.browser","i-lucide-globe",{"title":189,"path":190,"stem":191,"icon":192},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":194,"path":195,"stem":196,"icon":197},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":199,"path":200,"stem":201,"icon":202},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":204,"path":205,"stem":206,"icon":207},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":209,"path":210,"stem":211,"icon":212},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":214,"path":215,"stem":216,"icon":217},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":219,"path":220,"stem":221,"icon":222},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F8.custom","i-lucide-code",{"title":224,"path":225,"stem":226,"icon":227},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F9.pipeline","i-lucide-workflow",{"title":229,"path":230,"stem":231,"children":232,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[233,236,240],{"title":36,"path":234,"stem":235,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":237,"path":238,"stem":239,"icon":114},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":241,"path":242,"stem":243,"icon":222},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":245,"path":246,"stem":247,"children":248,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[249,253],{"title":36,"path":250,"stem":251,"icon":252},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":254,"path":255,"stem":256,"icon":257},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":259,"title":10,"body":260,"description":1234,"extension":1235,"links":1236,"meta":1245,"navigation":1246,"path":11,"seo":1247,"stem":12,"__hash__":1248},"docs\u002F1.getting-started\u002F1.introduction.md",{"type":261,"value":262,"toc":1227},"minimark",[263,271,288,293,296,301,321,325,328,512,515,847,850,853,856,883,886,1148,1160,1164,1171,1196,1207,1211,1223],[264,265,266,270],"p",{},[267,268,269],"strong",{},"evlog"," is a TypeScript logging library that replaces scattered log lines with comprehensive wide events and structured errors.",[264,272,273,274,281,282,287],{},"Inspired by ",[275,276,280],"a",{"href":277,"rel":278},"https:\u002F\u002Floggingsucks.com\u002F",[279],"nofollow","Logging Sucks"," by ",[275,283,286],{"href":284,"rel":285},"https:\u002F\u002Fx.com\u002Fboristane",[279],"Boris Tane",".",[289,290,292],"h2",{"id":291},"philosophy","Philosophy",[264,294,295],{},"Traditional logging is broken. Your logs are scattered across dozens of files. Each request generates 10+ log lines. When something goes wrong, you're left grep-ing through noise hoping to find signal.",[264,297,298,300],{},[267,299,269],{}," takes a different approach:",[302,303,304,308,311,316],"card-group",{},[305,306,307],"card",{"icon":129,"title":126},"One comprehensive log event per request, containing all the context you need.",[305,309,310],{"icon":144,"title":141},"Errors that explain why they occurred and how to fix them.",[305,312,315],{"icon":313,"title":314},"i-lucide-git-branch","Request Scoping","Accumulate context throughout the request lifecycle, emit once at the end.",[305,317,320],{"icon":318,"title":319},"i-lucide-palette","Pretty for Dev","Human-readable in development, machine-parseable JSON in production.",[289,322,324],{"id":323},"what-are-wide-events","What are Wide Events?",[264,326,327],{},"Instead of scattering logs throughout your code:",[329,330,336],"pre",{"className":331,"code":332,"filename":333,"language":334,"meta":335,"style":335},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","logger.info('Request started')\nlogger.info('User authenticated', { userId: user.id })\nlogger.info('Fetching cart', { cartId: cart.id })\nlogger.info('Processing payment')\nlogger.info('Payment successful')\nlogger.info('Request completed')\n","Traditional logging","typescript","",[337,338,339,370,414,452,472,492],"code",{"__ignoreMap":335},[340,341,344,348,351,355,358,361,365,367],"span",{"class":342,"line":343},"line",1,[340,345,347],{"class":346},"sTEyZ","logger",[340,349,287],{"class":350},"sMK4o",[340,352,354],{"class":353},"s2Zo4","info",[340,356,357],{"class":346},"(",[340,359,360],{"class":350},"'",[340,362,364],{"class":363},"sfazB","Request started",[340,366,360],{"class":350},[340,368,369],{"class":346},")\n",[340,371,373,375,377,379,381,383,386,388,391,394,398,401,404,406,409,412],{"class":342,"line":372},2,[340,374,347],{"class":346},[340,376,287],{"class":350},[340,378,354],{"class":353},[340,380,357],{"class":346},[340,382,360],{"class":350},[340,384,385],{"class":363},"User authenticated",[340,387,360],{"class":350},[340,389,390],{"class":350},",",[340,392,393],{"class":350}," {",[340,395,397],{"class":396},"swJcz"," userId",[340,399,400],{"class":350},":",[340,402,403],{"class":346}," user",[340,405,287],{"class":350},[340,407,408],{"class":346},"id ",[340,410,411],{"class":350},"}",[340,413,369],{"class":346},[340,415,417,419,421,423,425,427,430,432,434,436,439,441,444,446,448,450],{"class":342,"line":416},3,[340,418,347],{"class":346},[340,420,287],{"class":350},[340,422,354],{"class":353},[340,424,357],{"class":346},[340,426,360],{"class":350},[340,428,429],{"class":363},"Fetching cart",[340,431,360],{"class":350},[340,433,390],{"class":350},[340,435,393],{"class":350},[340,437,438],{"class":396}," cartId",[340,440,400],{"class":350},[340,442,443],{"class":346}," cart",[340,445,287],{"class":350},[340,447,408],{"class":346},[340,449,411],{"class":350},[340,451,369],{"class":346},[340,453,455,457,459,461,463,465,468,470],{"class":342,"line":454},4,[340,456,347],{"class":346},[340,458,287],{"class":350},[340,460,354],{"class":353},[340,462,357],{"class":346},[340,464,360],{"class":350},[340,466,467],{"class":363},"Processing payment",[340,469,360],{"class":350},[340,471,369],{"class":346},[340,473,475,477,479,481,483,485,488,490],{"class":342,"line":474},5,[340,476,347],{"class":346},[340,478,287],{"class":350},[340,480,354],{"class":353},[340,482,357],{"class":346},[340,484,360],{"class":350},[340,486,487],{"class":363},"Payment successful",[340,489,360],{"class":350},[340,491,369],{"class":346},[340,493,495,497,499,501,503,505,508,510],{"class":342,"line":494},6,[340,496,347],{"class":346},[340,498,287],{"class":350},[340,500,354],{"class":353},[340,502,357],{"class":346},[340,504,360],{"class":350},[340,506,507],{"class":363},"Request completed",[340,509,360],{"class":350},[340,511,369],{"class":346},[264,513,514],{},"You accumulate context and emit once:",[516,517,518,733],"code-group",{},[329,519,522],{"className":331,"code":520,"filename":521,"language":334,"meta":335,"style":335},"\u002F\u002F server\u002Fapi\u002Fcheckout.post.ts\nconst log = useLogger(event)\n\nlog.set({ user: { id: 1, plan: 'pro' } })\nlog.set({ cart: { id: 42, items: 3, total: 9999 } })\nlog.set({ payment: { method: 'card', status: 'success' } })\n\nreturn { success: true }\n","Code",[337,523,524,530,548,554,606,657,707,712],{"__ignoreMap":335},[340,525,526],{"class":342,"line":343},[340,527,529],{"class":528},"sHwdD","\u002F\u002F server\u002Fapi\u002Fcheckout.post.ts\n",[340,531,532,536,539,542,545],{"class":342,"line":372},[340,533,535],{"class":534},"spNyl","const",[340,537,538],{"class":346}," log ",[340,540,541],{"class":350},"=",[340,543,544],{"class":353}," useLogger",[340,546,547],{"class":346},"(event)\n",[340,549,550],{"class":342,"line":416},[340,551,553],{"emptyLinePlaceholder":552},true,"\n",[340,555,556,559,561,564,566,569,571,573,575,578,580,584,586,589,591,594,597,599,602,604],{"class":342,"line":454},[340,557,558],{"class":346},"log",[340,560,287],{"class":350},[340,562,563],{"class":353},"set",[340,565,357],{"class":346},[340,567,568],{"class":350},"{",[340,570,403],{"class":396},[340,572,400],{"class":350},[340,574,393],{"class":350},[340,576,577],{"class":396}," id",[340,579,400],{"class":350},[340,581,583],{"class":582},"sbssI"," 1",[340,585,390],{"class":350},[340,587,588],{"class":396}," plan",[340,590,400],{"class":350},[340,592,593],{"class":350}," '",[340,595,596],{"class":363},"pro",[340,598,360],{"class":350},[340,600,601],{"class":350}," }",[340,603,601],{"class":350},[340,605,369],{"class":346},[340,607,608,610,612,614,616,618,620,622,624,626,628,631,633,636,638,641,643,646,648,651,653,655],{"class":342,"line":474},[340,609,558],{"class":346},[340,611,287],{"class":350},[340,613,563],{"class":353},[340,615,357],{"class":346},[340,617,568],{"class":350},[340,619,443],{"class":396},[340,621,400],{"class":350},[340,623,393],{"class":350},[340,625,577],{"class":396},[340,627,400],{"class":350},[340,629,630],{"class":582}," 42",[340,632,390],{"class":350},[340,634,635],{"class":396}," items",[340,637,400],{"class":350},[340,639,640],{"class":582}," 3",[340,642,390],{"class":350},[340,644,645],{"class":396}," total",[340,647,400],{"class":350},[340,649,650],{"class":582}," 9999",[340,652,601],{"class":350},[340,654,601],{"class":350},[340,656,369],{"class":346},[340,658,659,661,663,665,667,669,672,674,676,679,681,683,685,687,689,692,694,696,699,701,703,705],{"class":342,"line":494},[340,660,558],{"class":346},[340,662,287],{"class":350},[340,664,563],{"class":353},[340,666,357],{"class":346},[340,668,568],{"class":350},[340,670,671],{"class":396}," payment",[340,673,400],{"class":350},[340,675,393],{"class":350},[340,677,678],{"class":396}," method",[340,680,400],{"class":350},[340,682,593],{"class":350},[340,684,305],{"class":363},[340,686,360],{"class":350},[340,688,390],{"class":350},[340,690,691],{"class":396}," status",[340,693,400],{"class":350},[340,695,593],{"class":350},[340,697,698],{"class":363},"success",[340,700,360],{"class":350},[340,702,601],{"class":350},[340,704,601],{"class":350},[340,706,369],{"class":346},[340,708,710],{"class":342,"line":709},7,[340,711,553],{"emptyLinePlaceholder":552},[340,713,715,719,721,724,726,730],{"class":342,"line":714},8,[340,716,718],{"class":717},"s7zQu","return",[340,720,393],{"class":350},[340,722,723],{"class":396}," success",[340,725,400],{"class":350},[340,727,729],{"class":728},"sfNiH"," true",[340,731,732],{"class":350}," }\n",[329,734,739],{"className":735,"code":736,"filename":737,"language":738,"meta":335,"style":335},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[INFO] POST \u002Fapi\u002Fcheckout (234ms)\n  user: { id: 1, plan: 'pro' }\n  cart: { id: 42, items: 3, total: 9999 }\n  payment: { method: 'card', status: 'success' }\n  status: 200\n","Output","bash",[337,740,741,761,785,810,839],{"__ignoreMap":335},[340,742,743,746,749,752,755,759],{"class":342,"line":343},[340,744,745],{"class":350},"[",[340,747,748],{"class":346},"INFO",[340,750,751],{"class":350},"]",[340,753,754],{"class":346}," POST \u002Fapi\u002Fcheckout (",[340,756,758],{"class":757},"sBMFI","234ms",[340,760,369],{"class":346},[340,762,763,766,768,771,774,777,779,781,783],{"class":342,"line":372},[340,764,765],{"class":757},"  user:",[340,767,393],{"class":363},[340,769,770],{"class":363}," id:",[340,772,773],{"class":363}," 1,",[340,775,776],{"class":363}," plan:",[340,778,593],{"class":350},[340,780,596],{"class":363},[340,782,360],{"class":350},[340,784,732],{"class":363},[340,786,787,790,792,794,797,800,803,806,808],{"class":342,"line":416},[340,788,789],{"class":757},"  cart:",[340,791,393],{"class":363},[340,793,770],{"class":363},[340,795,796],{"class":363}," 42,",[340,798,799],{"class":363}," items:",[340,801,802],{"class":363}," 3,",[340,804,805],{"class":363}," total:",[340,807,650],{"class":582},[340,809,732],{"class":363},[340,811,812,815,817,820,822,824,826,828,831,833,835,837],{"class":342,"line":454},[340,813,814],{"class":757},"  payment:",[340,816,393],{"class":363},[340,818,819],{"class":363}," method:",[340,821,593],{"class":350},[340,823,305],{"class":363},[340,825,360],{"class":350},[340,827,390],{"class":363},[340,829,830],{"class":363}," status:",[340,832,593],{"class":350},[340,834,698],{"class":363},[340,836,360],{"class":350},[340,838,732],{"class":363},[340,840,841,844],{"class":342,"line":474},[340,842,843],{"class":757},"  status:",[340,845,846],{"class":582}," 200\n",[264,848,849],{},"One log, all context. Everything you need to understand what happened during that request.",[289,851,141],{"id":852},"structured-errors",[264,854,855],{},"Traditional errors are opaque:",[329,857,859],{"className":331,"code":858,"language":334,"meta":335,"style":335},"throw new Error('Payment failed')\n",[337,860,861],{"__ignoreMap":335},[340,862,863,866,869,872,874,876,879,881],{"class":342,"line":343},[340,864,865],{"class":717},"throw",[340,867,868],{"class":350}," new",[340,870,871],{"class":353}," Error",[340,873,357],{"class":346},[340,875,360],{"class":350},[340,877,878],{"class":363},"Payment failed",[340,880,360],{"class":350},[340,882,369],{"class":346},[264,884,885],{},"Structured errors provide actionable context:",[516,887,888,1018],{},[329,889,891],{"className":331,"code":890,"filename":521,"language":334,"meta":335,"style":335},"\u002F\u002F server\u002Fapi\u002Fcheckout.post.ts\nimport { createError } from 'evlog'\n\nthrow createError({\n  message: 'Payment failed',\n  status: 402,\n  why: 'Card declined by issuer (insufficient funds)',\n  fix: 'Try a different payment method or contact your bank',\n  link: 'https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined',\n})\n",[337,892,893,897,919,923,934,950,962,978,994,1011],{"__ignoreMap":335},[340,894,895],{"class":342,"line":343},[340,896,529],{"class":528},[340,898,899,902,904,907,909,912,914,916],{"class":342,"line":372},[340,900,901],{"class":717},"import",[340,903,393],{"class":350},[340,905,906],{"class":346}," createError",[340,908,601],{"class":350},[340,910,911],{"class":717}," from",[340,913,593],{"class":350},[340,915,269],{"class":363},[340,917,918],{"class":350},"'\n",[340,920,921],{"class":342,"line":416},[340,922,553],{"emptyLinePlaceholder":552},[340,924,925,927,929,931],{"class":342,"line":454},[340,926,865],{"class":717},[340,928,906],{"class":353},[340,930,357],{"class":346},[340,932,933],{"class":350},"{\n",[340,935,936,939,941,943,945,947],{"class":342,"line":474},[340,937,938],{"class":396},"  message",[340,940,400],{"class":350},[340,942,593],{"class":350},[340,944,878],{"class":363},[340,946,360],{"class":350},[340,948,949],{"class":350},",\n",[340,951,952,955,957,960],{"class":342,"line":494},[340,953,954],{"class":396},"  status",[340,956,400],{"class":350},[340,958,959],{"class":582}," 402",[340,961,949],{"class":350},[340,963,964,967,969,971,974,976],{"class":342,"line":709},[340,965,966],{"class":396},"  why",[340,968,400],{"class":350},[340,970,593],{"class":350},[340,972,973],{"class":363},"Card declined by issuer (insufficient funds)",[340,975,360],{"class":350},[340,977,949],{"class":350},[340,979,980,983,985,987,990,992],{"class":342,"line":714},[340,981,982],{"class":396},"  fix",[340,984,400],{"class":350},[340,986,593],{"class":350},[340,988,989],{"class":363},"Try a different payment method or contact your bank",[340,991,360],{"class":350},[340,993,949],{"class":350},[340,995,997,1000,1002,1004,1007,1009],{"class":342,"line":996},9,[340,998,999],{"class":396},"  link",[340,1001,400],{"class":350},[340,1003,593],{"class":350},[340,1005,1006],{"class":363},"https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined",[340,1008,360],{"class":350},[340,1010,949],{"class":350},[340,1012,1014,1016],{"class":342,"line":1013},10,[340,1015,411],{"class":350},[340,1017,369],{"class":346},[329,1019,1024],{"className":1020,"code":1021,"filename":1022,"language":1023,"meta":335,"style":335},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"statusCode\": 402,\n  \"message\": \"Payment failed\",\n  \"data\": {\n    \"why\": \"Card declined by issuer (insufficient funds)\",\n    \"fix\": \"Try a different payment method or contact your bank\",\n    \"link\": \"https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined\"\n  }\n}\n","Response","json",[337,1025,1026,1030,1047,1067,1081,1101,1120,1138,1143],{"__ignoreMap":335},[340,1027,1028],{"class":342,"line":343},[340,1029,933],{"class":350},[340,1031,1032,1035,1038,1041,1043,1045],{"class":342,"line":372},[340,1033,1034],{"class":350},"  \"",[340,1036,1037],{"class":534},"statusCode",[340,1039,1040],{"class":350},"\"",[340,1042,400],{"class":350},[340,1044,959],{"class":582},[340,1046,949],{"class":350},[340,1048,1049,1051,1054,1056,1058,1061,1063,1065],{"class":342,"line":416},[340,1050,1034],{"class":350},[340,1052,1053],{"class":534},"message",[340,1055,1040],{"class":350},[340,1057,400],{"class":350},[340,1059,1060],{"class":350}," \"",[340,1062,878],{"class":363},[340,1064,1040],{"class":350},[340,1066,949],{"class":350},[340,1068,1069,1071,1074,1076,1078],{"class":342,"line":454},[340,1070,1034],{"class":350},[340,1072,1073],{"class":534},"data",[340,1075,1040],{"class":350},[340,1077,400],{"class":350},[340,1079,1080],{"class":350}," {\n",[340,1082,1083,1086,1089,1091,1093,1095,1097,1099],{"class":342,"line":474},[340,1084,1085],{"class":350},"    \"",[340,1087,1088],{"class":757},"why",[340,1090,1040],{"class":350},[340,1092,400],{"class":350},[340,1094,1060],{"class":350},[340,1096,973],{"class":363},[340,1098,1040],{"class":350},[340,1100,949],{"class":350},[340,1102,1103,1105,1108,1110,1112,1114,1116,1118],{"class":342,"line":494},[340,1104,1085],{"class":350},[340,1106,1107],{"class":757},"fix",[340,1109,1040],{"class":350},[340,1111,400],{"class":350},[340,1113,1060],{"class":350},[340,1115,989],{"class":363},[340,1117,1040],{"class":350},[340,1119,949],{"class":350},[340,1121,1122,1124,1127,1129,1131,1133,1135],{"class":342,"line":709},[340,1123,1085],{"class":350},[340,1125,1126],{"class":757},"link",[340,1128,1040],{"class":350},[340,1130,400],{"class":350},[340,1132,1060],{"class":350},[340,1134,1006],{"class":363},[340,1136,1137],{"class":350},"\"\n",[340,1139,1140],{"class":342,"line":714},[340,1141,1142],{"class":350},"  }\n",[340,1144,1145],{"class":342,"line":996},[340,1146,1147],{"class":350},"}\n",[264,1149,1150,1151,1153,1154,1156,1157,1159],{},"With ",[337,1152,1088],{},", ",[337,1155,1107],{},", and ",[337,1158,1126],{}," fields, anyone debugging (human or AI) can immediately understand the root cause and how to resolve it.",[289,1161,1163],{"id":1162},"why-context-matters","Why Context Matters",[264,1165,1166,1167,1170],{},"We're entering an era where AI agents build, debug, and maintain applications. These agents need ",[267,1168,1169],{},"structured context"," to work effectively:",[1172,1173,1174,1182,1189],"ul",{},[1175,1176,1177,1181],"li",{},[267,1178,1179],{},[337,1180,1088],{},": The root cause, so the agent understands what went wrong",[1175,1183,1184,1188],{},[267,1185,1186],{},[337,1187,1107],{},": An actionable solution the agent can suggest or apply",[1175,1190,1191,1195],{},[267,1192,1193],{},[337,1194,1126],{},": Documentation for complex issues",[264,1197,1198,1199,1202,1203,1206],{},"Traditional ",[337,1200,1201],{},"console.log"," and generic ",[337,1204,1205],{},"throw new Error()"," provide no actionable context. evlog's structured output is designed for both humans and AI to parse and act on.",[289,1208,1210],{"id":1209},"next-steps","Next Steps",[1172,1212,1213,1218],{},[1175,1214,1215,1217],{},[275,1216,15],{"href":16}," - Install evlog in your project",[1175,1219,1220,1222],{},[275,1221,20],{"href":21}," - Get up and running in minutes",[1224,1225,1226],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":335,"searchDepth":372,"depth":372,"links":1228},[1229,1230,1231,1232,1233],{"id":291,"depth":372,"text":292},{"id":323,"depth":372,"text":324},{"id":852,"depth":372,"text":141},{"id":1162,"depth":372,"text":1163},{"id":1209,"depth":372,"text":1210},"A TypeScript logging library focused on wide events and structured error handling. Replace scattered logs with one comprehensive event per request.","md",[1237,1240],{"label":20,"icon":23,"to":21,"color":1238,"variant":1239},"neutral","subtle",{"label":1241,"icon":1242,"to":1243,"target":1244,"color":1238,"variant":1239},"GitHub","i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog","_blank",{},{"icon":13},{"title":10,"description":1234},"gt4nkYa_hT4XXWwzBp30bEeTDQRfiAE8i2lXurp12L8",[1250,1251],null,{"title":15,"path":16,"stem":17,"description":1252,"icon":18,"children":-1},"Install evlog in your TypeScript project.",1774103706365]