[{"data":1,"prerenderedAt":1238},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":243,"-getting-started-introduction-surround":1234},[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":10,"body":245,"description":1219,"extension":1220,"links":1221,"meta":1230,"navigation":1231,"path":11,"seo":1232,"stem":12,"__hash__":1233},"docs\u002F1.getting-started\u002F1.introduction.md",{"type":246,"value":247,"toc":1212},"minimark",[248,256,273,278,281,286,306,310,313,497,500,832,835,838,841,868,871,1133,1145,1149,1156,1181,1192,1196,1208],[249,250,251,255],"p",{},[252,253,254],"strong",{},"evlog"," is a TypeScript logging library that replaces scattered log lines with comprehensive wide events and structured errors.",[249,257,258,259,266,267,272],{},"Inspired by ",[260,261,265],"a",{"href":262,"rel":263},"https:\u002F\u002Floggingsucks.com\u002F",[264],"nofollow","Logging Sucks"," by ",[260,268,271],{"href":269,"rel":270},"https:\u002F\u002Fx.com\u002Fboristane",[264],"Boris Tane",".",[274,275,277],"h2",{"id":276},"philosophy","Philosophy",[249,279,280],{},"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.",[249,282,283,285],{},[252,284,254],{}," takes a different approach:",[287,288,289,293,296,301],"card-group",{},[290,291,292],"card",{"icon":124,"title":121},"One comprehensive log event per request, containing all the context you need.",[290,294,295],{"icon":129,"title":126},"Errors that explain why they occurred and how to fix them.",[290,297,300],{"icon":298,"title":299},"i-lucide-git-branch","Request Scoping","Accumulate context throughout the request lifecycle, emit once at the end.",[290,302,305],{"icon":303,"title":304},"i-lucide-palette","Pretty for Dev","Human-readable in development, machine-parseable JSON in production.",[274,307,309],{"id":308},"what-are-wide-events","What are Wide Events?",[249,311,312],{},"Instead of scattering logs throughout your code:",[314,315,321],"pre",{"className":316,"code":317,"filename":318,"language":319,"meta":320,"style":320},"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","",[322,323,324,355,399,437,457,477],"code",{"__ignoreMap":320},[325,326,329,333,336,340,343,346,350,352],"span",{"class":327,"line":328},"line",1,[325,330,332],{"class":331},"sTEyZ","logger",[325,334,272],{"class":335},"sMK4o",[325,337,339],{"class":338},"s2Zo4","info",[325,341,342],{"class":331},"(",[325,344,345],{"class":335},"'",[325,347,349],{"class":348},"sfazB","Request started",[325,351,345],{"class":335},[325,353,354],{"class":331},")\n",[325,356,358,360,362,364,366,368,371,373,376,379,383,386,389,391,394,397],{"class":327,"line":357},2,[325,359,332],{"class":331},[325,361,272],{"class":335},[325,363,339],{"class":338},[325,365,342],{"class":331},[325,367,345],{"class":335},[325,369,370],{"class":348},"User authenticated",[325,372,345],{"class":335},[325,374,375],{"class":335},",",[325,377,378],{"class":335}," {",[325,380,382],{"class":381},"swJcz"," userId",[325,384,385],{"class":335},":",[325,387,388],{"class":331}," user",[325,390,272],{"class":335},[325,392,393],{"class":331},"id ",[325,395,396],{"class":335},"}",[325,398,354],{"class":331},[325,400,402,404,406,408,410,412,415,417,419,421,424,426,429,431,433,435],{"class":327,"line":401},3,[325,403,332],{"class":331},[325,405,272],{"class":335},[325,407,339],{"class":338},[325,409,342],{"class":331},[325,411,345],{"class":335},[325,413,414],{"class":348},"Fetching cart",[325,416,345],{"class":335},[325,418,375],{"class":335},[325,420,378],{"class":335},[325,422,423],{"class":381}," cartId",[325,425,385],{"class":335},[325,427,428],{"class":331}," cart",[325,430,272],{"class":335},[325,432,393],{"class":331},[325,434,396],{"class":335},[325,436,354],{"class":331},[325,438,440,442,444,446,448,450,453,455],{"class":327,"line":439},4,[325,441,332],{"class":331},[325,443,272],{"class":335},[325,445,339],{"class":338},[325,447,342],{"class":331},[325,449,345],{"class":335},[325,451,452],{"class":348},"Processing payment",[325,454,345],{"class":335},[325,456,354],{"class":331},[325,458,460,462,464,466,468,470,473,475],{"class":327,"line":459},5,[325,461,332],{"class":331},[325,463,272],{"class":335},[325,465,339],{"class":338},[325,467,342],{"class":331},[325,469,345],{"class":335},[325,471,472],{"class":348},"Payment successful",[325,474,345],{"class":335},[325,476,354],{"class":331},[325,478,480,482,484,486,488,490,493,495],{"class":327,"line":479},6,[325,481,332],{"class":331},[325,483,272],{"class":335},[325,485,339],{"class":338},[325,487,342],{"class":331},[325,489,345],{"class":335},[325,491,492],{"class":348},"Request completed",[325,494,345],{"class":335},[325,496,354],{"class":331},[249,498,499],{},"You accumulate context and emit once:",[501,502,503,718],"code-group",{},[314,504,507],{"className":316,"code":505,"filename":506,"language":319,"meta":320,"style":320},"\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",[322,508,509,515,533,539,591,642,692,697],{"__ignoreMap":320},[325,510,511],{"class":327,"line":328},[325,512,514],{"class":513},"sHwdD","\u002F\u002F server\u002Fapi\u002Fcheckout.post.ts\n",[325,516,517,521,524,527,530],{"class":327,"line":357},[325,518,520],{"class":519},"spNyl","const",[325,522,523],{"class":331}," log ",[325,525,526],{"class":335},"=",[325,528,529],{"class":338}," useLogger",[325,531,532],{"class":331},"(event)\n",[325,534,535],{"class":327,"line":401},[325,536,538],{"emptyLinePlaceholder":537},true,"\n",[325,540,541,544,546,549,551,554,556,558,560,563,565,569,571,574,576,579,582,584,587,589],{"class":327,"line":439},[325,542,543],{"class":331},"log",[325,545,272],{"class":335},[325,547,548],{"class":338},"set",[325,550,342],{"class":331},[325,552,553],{"class":335},"{",[325,555,388],{"class":381},[325,557,385],{"class":335},[325,559,378],{"class":335},[325,561,562],{"class":381}," id",[325,564,385],{"class":335},[325,566,568],{"class":567},"sbssI"," 1",[325,570,375],{"class":335},[325,572,573],{"class":381}," plan",[325,575,385],{"class":335},[325,577,578],{"class":335}," '",[325,580,581],{"class":348},"pro",[325,583,345],{"class":335},[325,585,586],{"class":335}," }",[325,588,586],{"class":335},[325,590,354],{"class":331},[325,592,593,595,597,599,601,603,605,607,609,611,613,616,618,621,623,626,628,631,633,636,638,640],{"class":327,"line":459},[325,594,543],{"class":331},[325,596,272],{"class":335},[325,598,548],{"class":338},[325,600,342],{"class":331},[325,602,553],{"class":335},[325,604,428],{"class":381},[325,606,385],{"class":335},[325,608,378],{"class":335},[325,610,562],{"class":381},[325,612,385],{"class":335},[325,614,615],{"class":567}," 42",[325,617,375],{"class":335},[325,619,620],{"class":381}," items",[325,622,385],{"class":335},[325,624,625],{"class":567}," 3",[325,627,375],{"class":335},[325,629,630],{"class":381}," total",[325,632,385],{"class":335},[325,634,635],{"class":567}," 9999",[325,637,586],{"class":335},[325,639,586],{"class":335},[325,641,354],{"class":331},[325,643,644,646,648,650,652,654,657,659,661,664,666,668,670,672,674,677,679,681,684,686,688,690],{"class":327,"line":479},[325,645,543],{"class":331},[325,647,272],{"class":335},[325,649,548],{"class":338},[325,651,342],{"class":331},[325,653,553],{"class":335},[325,655,656],{"class":381}," payment",[325,658,385],{"class":335},[325,660,378],{"class":335},[325,662,663],{"class":381}," method",[325,665,385],{"class":335},[325,667,578],{"class":335},[325,669,290],{"class":348},[325,671,345],{"class":335},[325,673,375],{"class":335},[325,675,676],{"class":381}," status",[325,678,385],{"class":335},[325,680,578],{"class":335},[325,682,683],{"class":348},"success",[325,685,345],{"class":335},[325,687,586],{"class":335},[325,689,586],{"class":335},[325,691,354],{"class":331},[325,693,695],{"class":327,"line":694},7,[325,696,538],{"emptyLinePlaceholder":537},[325,698,700,704,706,709,711,715],{"class":327,"line":699},8,[325,701,703],{"class":702},"s7zQu","return",[325,705,378],{"class":335},[325,707,708],{"class":381}," success",[325,710,385],{"class":335},[325,712,714],{"class":713},"sfNiH"," true",[325,716,717],{"class":335}," }\n",[314,719,724],{"className":720,"code":721,"filename":722,"language":723,"meta":320,"style":320},"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",[322,725,726,746,770,795,824],{"__ignoreMap":320},[325,727,728,731,734,737,740,744],{"class":327,"line":328},[325,729,730],{"class":335},"[",[325,732,733],{"class":331},"INFO",[325,735,736],{"class":335},"]",[325,738,739],{"class":331}," POST \u002Fapi\u002Fcheckout (",[325,741,743],{"class":742},"sBMFI","234ms",[325,745,354],{"class":331},[325,747,748,751,753,756,759,762,764,766,768],{"class":327,"line":357},[325,749,750],{"class":742},"  user:",[325,752,378],{"class":348},[325,754,755],{"class":348}," id:",[325,757,758],{"class":348}," 1,",[325,760,761],{"class":348}," plan:",[325,763,578],{"class":335},[325,765,581],{"class":348},[325,767,345],{"class":335},[325,769,717],{"class":348},[325,771,772,775,777,779,782,785,788,791,793],{"class":327,"line":401},[325,773,774],{"class":742},"  cart:",[325,776,378],{"class":348},[325,778,755],{"class":348},[325,780,781],{"class":348}," 42,",[325,783,784],{"class":348}," items:",[325,786,787],{"class":348}," 3,",[325,789,790],{"class":348}," total:",[325,792,635],{"class":567},[325,794,717],{"class":348},[325,796,797,800,802,805,807,809,811,813,816,818,820,822],{"class":327,"line":439},[325,798,799],{"class":742},"  payment:",[325,801,378],{"class":348},[325,803,804],{"class":348}," method:",[325,806,578],{"class":335},[325,808,290],{"class":348},[325,810,345],{"class":335},[325,812,375],{"class":348},[325,814,815],{"class":348}," status:",[325,817,578],{"class":335},[325,819,683],{"class":348},[325,821,345],{"class":335},[325,823,717],{"class":348},[325,825,826,829],{"class":327,"line":459},[325,827,828],{"class":742},"  status:",[325,830,831],{"class":567}," 200\n",[249,833,834],{},"One log, all context. Everything you need to understand what happened during that request.",[274,836,126],{"id":837},"structured-errors",[249,839,840],{},"Traditional errors are opaque:",[314,842,844],{"className":316,"code":843,"language":319,"meta":320,"style":320},"throw new Error('Payment failed')\n",[322,845,846],{"__ignoreMap":320},[325,847,848,851,854,857,859,861,864,866],{"class":327,"line":328},[325,849,850],{"class":702},"throw",[325,852,853],{"class":335}," new",[325,855,856],{"class":338}," Error",[325,858,342],{"class":331},[325,860,345],{"class":335},[325,862,863],{"class":348},"Payment failed",[325,865,345],{"class":335},[325,867,354],{"class":331},[249,869,870],{},"Structured errors provide actionable context:",[501,872,873,1003],{},[314,874,876],{"className":316,"code":875,"filename":506,"language":319,"meta":320,"style":320},"\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",[322,877,878,882,904,908,919,935,947,963,979,996],{"__ignoreMap":320},[325,879,880],{"class":327,"line":328},[325,881,514],{"class":513},[325,883,884,887,889,892,894,897,899,901],{"class":327,"line":357},[325,885,886],{"class":702},"import",[325,888,378],{"class":335},[325,890,891],{"class":331}," createError",[325,893,586],{"class":335},[325,895,896],{"class":702}," from",[325,898,578],{"class":335},[325,900,254],{"class":348},[325,902,903],{"class":335},"'\n",[325,905,906],{"class":327,"line":401},[325,907,538],{"emptyLinePlaceholder":537},[325,909,910,912,914,916],{"class":327,"line":439},[325,911,850],{"class":702},[325,913,891],{"class":338},[325,915,342],{"class":331},[325,917,918],{"class":335},"{\n",[325,920,921,924,926,928,930,932],{"class":327,"line":459},[325,922,923],{"class":381},"  message",[325,925,385],{"class":335},[325,927,578],{"class":335},[325,929,863],{"class":348},[325,931,345],{"class":335},[325,933,934],{"class":335},",\n",[325,936,937,940,942,945],{"class":327,"line":479},[325,938,939],{"class":381},"  status",[325,941,385],{"class":335},[325,943,944],{"class":567}," 402",[325,946,934],{"class":335},[325,948,949,952,954,956,959,961],{"class":327,"line":694},[325,950,951],{"class":381},"  why",[325,953,385],{"class":335},[325,955,578],{"class":335},[325,957,958],{"class":348},"Card declined by issuer (insufficient funds)",[325,960,345],{"class":335},[325,962,934],{"class":335},[325,964,965,968,970,972,975,977],{"class":327,"line":699},[325,966,967],{"class":381},"  fix",[325,969,385],{"class":335},[325,971,578],{"class":335},[325,973,974],{"class":348},"Try a different payment method or contact your bank",[325,976,345],{"class":335},[325,978,934],{"class":335},[325,980,982,985,987,989,992,994],{"class":327,"line":981},9,[325,983,984],{"class":381},"  link",[325,986,385],{"class":335},[325,988,578],{"class":335},[325,990,991],{"class":348},"https:\u002F\u002Fdocs.example.com\u002Fpayments\u002Fdeclined",[325,993,345],{"class":335},[325,995,934],{"class":335},[325,997,999,1001],{"class":327,"line":998},10,[325,1000,396],{"class":335},[325,1002,354],{"class":331},[314,1004,1009],{"className":1005,"code":1006,"filename":1007,"language":1008,"meta":320,"style":320},"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",[322,1010,1011,1015,1032,1052,1066,1086,1105,1123,1128],{"__ignoreMap":320},[325,1012,1013],{"class":327,"line":328},[325,1014,918],{"class":335},[325,1016,1017,1020,1023,1026,1028,1030],{"class":327,"line":357},[325,1018,1019],{"class":335},"  \"",[325,1021,1022],{"class":519},"statusCode",[325,1024,1025],{"class":335},"\"",[325,1027,385],{"class":335},[325,1029,944],{"class":567},[325,1031,934],{"class":335},[325,1033,1034,1036,1039,1041,1043,1046,1048,1050],{"class":327,"line":401},[325,1035,1019],{"class":335},[325,1037,1038],{"class":519},"message",[325,1040,1025],{"class":335},[325,1042,385],{"class":335},[325,1044,1045],{"class":335}," \"",[325,1047,863],{"class":348},[325,1049,1025],{"class":335},[325,1051,934],{"class":335},[325,1053,1054,1056,1059,1061,1063],{"class":327,"line":439},[325,1055,1019],{"class":335},[325,1057,1058],{"class":519},"data",[325,1060,1025],{"class":335},[325,1062,385],{"class":335},[325,1064,1065],{"class":335}," {\n",[325,1067,1068,1071,1074,1076,1078,1080,1082,1084],{"class":327,"line":459},[325,1069,1070],{"class":335},"    \"",[325,1072,1073],{"class":742},"why",[325,1075,1025],{"class":335},[325,1077,385],{"class":335},[325,1079,1045],{"class":335},[325,1081,958],{"class":348},[325,1083,1025],{"class":335},[325,1085,934],{"class":335},[325,1087,1088,1090,1093,1095,1097,1099,1101,1103],{"class":327,"line":479},[325,1089,1070],{"class":335},[325,1091,1092],{"class":742},"fix",[325,1094,1025],{"class":335},[325,1096,385],{"class":335},[325,1098,1045],{"class":335},[325,1100,974],{"class":348},[325,1102,1025],{"class":335},[325,1104,934],{"class":335},[325,1106,1107,1109,1112,1114,1116,1118,1120],{"class":327,"line":694},[325,1108,1070],{"class":335},[325,1110,1111],{"class":742},"link",[325,1113,1025],{"class":335},[325,1115,385],{"class":335},[325,1117,1045],{"class":335},[325,1119,991],{"class":348},[325,1121,1122],{"class":335},"\"\n",[325,1124,1125],{"class":327,"line":699},[325,1126,1127],{"class":335},"  }\n",[325,1129,1130],{"class":327,"line":981},[325,1131,1132],{"class":335},"}\n",[249,1134,1135,1136,1138,1139,1141,1142,1144],{},"With ",[322,1137,1073],{},", ",[322,1140,1092],{},", and ",[322,1143,1111],{}," fields, anyone debugging (human or AI) can immediately understand the root cause and how to resolve it.",[274,1146,1148],{"id":1147},"why-context-matters","Why Context Matters",[249,1150,1151,1152,1155],{},"We're entering an era where AI agents build, debug, and maintain applications. These agents need ",[252,1153,1154],{},"structured context"," to work effectively:",[1157,1158,1159,1167,1174],"ul",{},[1160,1161,1162,1166],"li",{},[252,1163,1164],{},[322,1165,1073],{},": The root cause, so the agent understands what went wrong",[1160,1168,1169,1173],{},[252,1170,1171],{},[322,1172,1092],{},": An actionable solution the agent can suggest or apply",[1160,1175,1176,1180],{},[252,1177,1178],{},[322,1179,1111],{},": Documentation for complex issues",[249,1182,1183,1184,1187,1188,1191],{},"Traditional ",[322,1185,1186],{},"console.log"," and generic ",[322,1189,1190],{},"throw new Error()"," provide no actionable context. evlog's structured output is designed for both humans and AI to parse and act on.",[274,1193,1195],{"id":1194},"next-steps","Next Steps",[1157,1197,1198,1203],{},[1160,1199,1200,1202],{},[260,1201,15],{"href":16}," - Install evlog in your project",[1160,1204,1205,1207],{},[260,1206,20],{"href":21}," - Get up and running in minutes",[1209,1210,1211],"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":320,"searchDepth":357,"depth":357,"links":1213},[1214,1215,1216,1217,1218],{"id":276,"depth":357,"text":277},{"id":308,"depth":357,"text":309},{"id":837,"depth":357,"text":126},{"id":1147,"depth":357,"text":1148},{"id":1194,"depth":357,"text":1195},"A TypeScript logging library focused on wide events and structured error handling. Replace scattered logs with one comprehensive event per request.","md",[1222,1225],{"label":20,"icon":23,"to":21,"color":1223,"variant":1224},"neutral","subtle",{"label":1226,"icon":1227,"to":1228,"target":1229,"color":1223,"variant":1224},"GitHub","i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fhugorcd\u002Fevlog","_blank",{},{"icon":13},{"title":10,"description":1219},"gt4nkYa_hT4XXWwzBp30bEeTDQRfiAE8i2lXurp12L8",[1235,1236],null,{"title":15,"path":16,"stem":17,"description":1237,"icon":18,"children":-1},"Install evlog in your TypeScript project.",1773505330317]