[{"data":1,"prerenderedAt":1042},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":75,"-getting-started-introduction-surround":1038},[4,30,50],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","/getting-started/agent-skills","1.getting-started/4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Core Concepts","/core-concepts","2.core-concepts",[35,40,45],{"title":36,"path":37,"stem":38,"icon":39},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events","i-lucide-layers",{"title":41,"path":42,"stem":43,"icon":44},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":46,"path":47,"stem":48,"icon":49},"Best Practices","/core-concepts/best-practices","2.core-concepts/3.best-practices","i-lucide-shield-check",{"title":51,"path":52,"stem":53,"children":54,"page":29},"Adapters","/adapters","3.adapters",[55,60,65,70],{"title":56,"path":57,"stem":58,"icon":59},"Overview","/adapters/overview","3.adapters/1.overview","i-custom-plug",{"title":61,"path":62,"stem":63,"icon":64},"Axiom","/adapters/axiom","3.adapters/2.axiom","i-custom-axiom",{"title":66,"path":67,"stem":68,"icon":69},"OTLP","/adapters/otlp","3.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":71,"path":72,"stem":73,"icon":74},"Custom Adapters","/adapters/custom","3.adapters/4.custom","i-lucide-code",{"id":76,"title":10,"body":77,"description":1025,"extension":1026,"links":1027,"meta":1034,"navigation":1035,"path":11,"seo":1036,"stem":12,"__hash__":1037},"docs/1.getting-started/1.introduction.md",{"type":78,"value":79,"toc":1018},"minimark",[80,88,105,110,113,118,138,142,145,329,332,664,667,670,673,700,703,939,951,955,962,987,998,1002,1014],[81,82,83,87],"p",{},[84,85,86],"strong",{},"evlog"," is a TypeScript logging library that replaces scattered log lines with comprehensive wide events and structured errors.",[81,89,90,91,98,99,104],{},"Inspired by ",[92,93,97],"a",{"href":94,"rel":95},"https://loggingsucks.com/",[96],"nofollow","Logging Sucks"," by ",[92,100,103],{"href":101,"rel":102},"https://x.com/boristane",[96],"Boris Tane",".",[106,107,109],"h2",{"id":108},"philosophy","Philosophy",[81,111,112],{},"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.",[81,114,115,117],{},[84,116,86],{}," takes a different approach:",[119,120,121,125,128,133],"card-group",{},[122,123,124],"card",{"icon":39,"title":36},"One comprehensive log event per request, containing all the context you need.",[122,126,127],{"icon":44,"title":41},"Errors that explain why they occurred and how to fix them.",[122,129,132],{"icon":130,"title":131},"i-lucide-git-branch","Request Scoping","Accumulate context throughout the request lifecycle, emit once at the end.",[122,134,137],{"icon":135,"title":136},"i-lucide-palette","Pretty for Dev","Human-readable in development, machine-parseable JSON in production.",[106,139,141],{"id":140},"what-are-wide-events","What are Wide Events?",[81,143,144],{},"Instead of scattering logs throughout your code:",[146,147,153],"pre",{"className":148,"code":149,"filename":150,"language":151,"meta":152,"style":152},"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","",[154,155,156,187,231,269,289,309],"code",{"__ignoreMap":152},[157,158,161,165,168,172,175,178,182,184],"span",{"class":159,"line":160},"line",1,[157,162,164],{"class":163},"sTEyZ","logger",[157,166,104],{"class":167},"sMK4o",[157,169,171],{"class":170},"s2Zo4","info",[157,173,174],{"class":163},"(",[157,176,177],{"class":167},"'",[157,179,181],{"class":180},"sfazB","Request started",[157,183,177],{"class":167},[157,185,186],{"class":163},")\n",[157,188,190,192,194,196,198,200,203,205,208,211,215,218,221,223,226,229],{"class":159,"line":189},2,[157,191,164],{"class":163},[157,193,104],{"class":167},[157,195,171],{"class":170},[157,197,174],{"class":163},[157,199,177],{"class":167},[157,201,202],{"class":180},"User authenticated",[157,204,177],{"class":167},[157,206,207],{"class":167},",",[157,209,210],{"class":167}," {",[157,212,214],{"class":213},"swJcz"," userId",[157,216,217],{"class":167},":",[157,219,220],{"class":163}," user",[157,222,104],{"class":167},[157,224,225],{"class":163},"id ",[157,227,228],{"class":167},"}",[157,230,186],{"class":163},[157,232,234,236,238,240,242,244,247,249,251,253,256,258,261,263,265,267],{"class":159,"line":233},3,[157,235,164],{"class":163},[157,237,104],{"class":167},[157,239,171],{"class":170},[157,241,174],{"class":163},[157,243,177],{"class":167},[157,245,246],{"class":180},"Fetching cart",[157,248,177],{"class":167},[157,250,207],{"class":167},[157,252,210],{"class":167},[157,254,255],{"class":213}," cartId",[157,257,217],{"class":167},[157,259,260],{"class":163}," cart",[157,262,104],{"class":167},[157,264,225],{"class":163},[157,266,228],{"class":167},[157,268,186],{"class":163},[157,270,272,274,276,278,280,282,285,287],{"class":159,"line":271},4,[157,273,164],{"class":163},[157,275,104],{"class":167},[157,277,171],{"class":170},[157,279,174],{"class":163},[157,281,177],{"class":167},[157,283,284],{"class":180},"Processing payment",[157,286,177],{"class":167},[157,288,186],{"class":163},[157,290,292,294,296,298,300,302,305,307],{"class":159,"line":291},5,[157,293,164],{"class":163},[157,295,104],{"class":167},[157,297,171],{"class":170},[157,299,174],{"class":163},[157,301,177],{"class":167},[157,303,304],{"class":180},"Payment successful",[157,306,177],{"class":167},[157,308,186],{"class":163},[157,310,312,314,316,318,320,322,325,327],{"class":159,"line":311},6,[157,313,164],{"class":163},[157,315,104],{"class":167},[157,317,171],{"class":170},[157,319,174],{"class":163},[157,321,177],{"class":167},[157,323,324],{"class":180},"Request completed",[157,326,177],{"class":167},[157,328,186],{"class":163},[81,330,331],{},"You accumulate context and emit once:",[333,334,335,550],"code-group",{},[146,336,339],{"className":148,"code":337,"filename":338,"language":151,"meta":152,"style":152},"// server/api/checkout.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",[154,340,341,347,365,371,423,474,524,529],{"__ignoreMap":152},[157,342,343],{"class":159,"line":160},[157,344,346],{"class":345},"sHwdD","// server/api/checkout.post.ts\n",[157,348,349,353,356,359,362],{"class":159,"line":189},[157,350,352],{"class":351},"spNyl","const",[157,354,355],{"class":163}," log ",[157,357,358],{"class":167},"=",[157,360,361],{"class":170}," useLogger",[157,363,364],{"class":163},"(event)\n",[157,366,367],{"class":159,"line":233},[157,368,370],{"emptyLinePlaceholder":369},true,"\n",[157,372,373,376,378,381,383,386,388,390,392,395,397,401,403,406,408,411,414,416,419,421],{"class":159,"line":271},[157,374,375],{"class":163},"log",[157,377,104],{"class":167},[157,379,380],{"class":170},"set",[157,382,174],{"class":163},[157,384,385],{"class":167},"{",[157,387,220],{"class":213},[157,389,217],{"class":167},[157,391,210],{"class":167},[157,393,394],{"class":213}," id",[157,396,217],{"class":167},[157,398,400],{"class":399},"sbssI"," 1",[157,402,207],{"class":167},[157,404,405],{"class":213}," plan",[157,407,217],{"class":167},[157,409,410],{"class":167}," '",[157,412,413],{"class":180},"pro",[157,415,177],{"class":167},[157,417,418],{"class":167}," }",[157,420,418],{"class":167},[157,422,186],{"class":163},[157,424,425,427,429,431,433,435,437,439,441,443,445,448,450,453,455,458,460,463,465,468,470,472],{"class":159,"line":291},[157,426,375],{"class":163},[157,428,104],{"class":167},[157,430,380],{"class":170},[157,432,174],{"class":163},[157,434,385],{"class":167},[157,436,260],{"class":213},[157,438,217],{"class":167},[157,440,210],{"class":167},[157,442,394],{"class":213},[157,444,217],{"class":167},[157,446,447],{"class":399}," 42",[157,449,207],{"class":167},[157,451,452],{"class":213}," items",[157,454,217],{"class":167},[157,456,457],{"class":399}," 3",[157,459,207],{"class":167},[157,461,462],{"class":213}," total",[157,464,217],{"class":167},[157,466,467],{"class":399}," 9999",[157,469,418],{"class":167},[157,471,418],{"class":167},[157,473,186],{"class":163},[157,475,476,478,480,482,484,486,489,491,493,496,498,500,502,504,506,509,511,513,516,518,520,522],{"class":159,"line":311},[157,477,375],{"class":163},[157,479,104],{"class":167},[157,481,380],{"class":170},[157,483,174],{"class":163},[157,485,385],{"class":167},[157,487,488],{"class":213}," payment",[157,490,217],{"class":167},[157,492,210],{"class":167},[157,494,495],{"class":213}," method",[157,497,217],{"class":167},[157,499,410],{"class":167},[157,501,122],{"class":180},[157,503,177],{"class":167},[157,505,207],{"class":167},[157,507,508],{"class":213}," status",[157,510,217],{"class":167},[157,512,410],{"class":167},[157,514,515],{"class":180},"success",[157,517,177],{"class":167},[157,519,418],{"class":167},[157,521,418],{"class":167},[157,523,186],{"class":163},[157,525,527],{"class":159,"line":526},7,[157,528,370],{"emptyLinePlaceholder":369},[157,530,532,536,538,541,543,547],{"class":159,"line":531},8,[157,533,535],{"class":534},"s7zQu","return",[157,537,210],{"class":167},[157,539,540],{"class":213}," success",[157,542,217],{"class":167},[157,544,546],{"class":545},"sfNiH"," true",[157,548,549],{"class":167}," }\n",[146,551,556],{"className":552,"code":553,"filename":554,"language":555,"meta":152,"style":152},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[INFO] POST /api/checkout (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",[154,557,558,578,602,627,656],{"__ignoreMap":152},[157,559,560,563,566,569,572,576],{"class":159,"line":160},[157,561,562],{"class":167},"[",[157,564,565],{"class":163},"INFO",[157,567,568],{"class":167},"]",[157,570,571],{"class":163}," POST /api/checkout (",[157,573,575],{"class":574},"sBMFI","234ms",[157,577,186],{"class":163},[157,579,580,583,585,588,591,594,596,598,600],{"class":159,"line":189},[157,581,582],{"class":574},"  user:",[157,584,210],{"class":180},[157,586,587],{"class":180}," id:",[157,589,590],{"class":180}," 1,",[157,592,593],{"class":180}," plan:",[157,595,410],{"class":167},[157,597,413],{"class":180},[157,599,177],{"class":167},[157,601,549],{"class":180},[157,603,604,607,609,611,614,617,620,623,625],{"class":159,"line":233},[157,605,606],{"class":574},"  cart:",[157,608,210],{"class":180},[157,610,587],{"class":180},[157,612,613],{"class":180}," 42,",[157,615,616],{"class":180}," items:",[157,618,619],{"class":180}," 3,",[157,621,622],{"class":180}," total:",[157,624,467],{"class":399},[157,626,549],{"class":180},[157,628,629,632,634,637,639,641,643,645,648,650,652,654],{"class":159,"line":271},[157,630,631],{"class":574},"  payment:",[157,633,210],{"class":180},[157,635,636],{"class":180}," method:",[157,638,410],{"class":167},[157,640,122],{"class":180},[157,642,177],{"class":167},[157,644,207],{"class":180},[157,646,647],{"class":180}," status:",[157,649,410],{"class":167},[157,651,515],{"class":180},[157,653,177],{"class":167},[157,655,549],{"class":180},[157,657,658,661],{"class":159,"line":291},[157,659,660],{"class":574},"  status:",[157,662,663],{"class":399}," 200\n",[81,665,666],{},"One log, all context. Everything you need to understand what happened during that request.",[106,668,41],{"id":669},"structured-errors",[81,671,672],{},"Traditional errors are opaque:",[146,674,676],{"className":148,"code":675,"language":151,"meta":152,"style":152},"throw new Error('Payment failed')\n",[154,677,678],{"__ignoreMap":152},[157,679,680,683,686,689,691,693,696,698],{"class":159,"line":160},[157,681,682],{"class":534},"throw",[157,684,685],{"class":167}," new",[157,687,688],{"class":170}," Error",[157,690,174],{"class":163},[157,692,177],{"class":167},[157,694,695],{"class":180},"Payment failed",[157,697,177],{"class":167},[157,699,186],{"class":163},[81,701,702],{},"Structured errors provide actionable context:",[333,704,705,808],{},[146,706,708],{"className":148,"code":707,"filename":338,"language":151,"meta":152,"style":152},"// server/api/checkout.post.ts\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://docs.example.com/payments/declined',\n})\n",[154,709,710,714,726,742,754,770,786,802],{"__ignoreMap":152},[157,711,712],{"class":159,"line":160},[157,713,346],{"class":345},[157,715,716,718,721,723],{"class":159,"line":189},[157,717,682],{"class":534},[157,719,720],{"class":170}," createError",[157,722,174],{"class":163},[157,724,725],{"class":167},"{\n",[157,727,728,731,733,735,737,739],{"class":159,"line":233},[157,729,730],{"class":213},"  message",[157,732,217],{"class":167},[157,734,410],{"class":167},[157,736,695],{"class":180},[157,738,177],{"class":167},[157,740,741],{"class":167},",\n",[157,743,744,747,749,752],{"class":159,"line":271},[157,745,746],{"class":213},"  status",[157,748,217],{"class":167},[157,750,751],{"class":399}," 402",[157,753,741],{"class":167},[157,755,756,759,761,763,766,768],{"class":159,"line":291},[157,757,758],{"class":213},"  why",[157,760,217],{"class":167},[157,762,410],{"class":167},[157,764,765],{"class":180},"Card declined by issuer (insufficient funds)",[157,767,177],{"class":167},[157,769,741],{"class":167},[157,771,772,775,777,779,782,784],{"class":159,"line":311},[157,773,774],{"class":213},"  fix",[157,776,217],{"class":167},[157,778,410],{"class":167},[157,780,781],{"class":180},"Try a different payment method or contact your bank",[157,783,177],{"class":167},[157,785,741],{"class":167},[157,787,788,791,793,795,798,800],{"class":159,"line":526},[157,789,790],{"class":213},"  link",[157,792,217],{"class":167},[157,794,410],{"class":167},[157,796,797],{"class":180},"https://docs.example.com/payments/declined",[157,799,177],{"class":167},[157,801,741],{"class":167},[157,803,804,806],{"class":159,"line":531},[157,805,228],{"class":167},[157,807,186],{"class":163},[146,809,814],{"className":810,"code":811,"filename":812,"language":813,"meta":152,"style":152},"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://docs.example.com/payments/declined\"\n  }\n}\n","Response","json",[154,815,816,820,837,857,871,891,910,928,933],{"__ignoreMap":152},[157,817,818],{"class":159,"line":160},[157,819,725],{"class":167},[157,821,822,825,828,831,833,835],{"class":159,"line":189},[157,823,824],{"class":167},"  \"",[157,826,827],{"class":351},"statusCode",[157,829,830],{"class":167},"\"",[157,832,217],{"class":167},[157,834,751],{"class":399},[157,836,741],{"class":167},[157,838,839,841,844,846,848,851,853,855],{"class":159,"line":233},[157,840,824],{"class":167},[157,842,843],{"class":351},"message",[157,845,830],{"class":167},[157,847,217],{"class":167},[157,849,850],{"class":167}," \"",[157,852,695],{"class":180},[157,854,830],{"class":167},[157,856,741],{"class":167},[157,858,859,861,864,866,868],{"class":159,"line":271},[157,860,824],{"class":167},[157,862,863],{"class":351},"data",[157,865,830],{"class":167},[157,867,217],{"class":167},[157,869,870],{"class":167}," {\n",[157,872,873,876,879,881,883,885,887,889],{"class":159,"line":291},[157,874,875],{"class":167},"    \"",[157,877,878],{"class":574},"why",[157,880,830],{"class":167},[157,882,217],{"class":167},[157,884,850],{"class":167},[157,886,765],{"class":180},[157,888,830],{"class":167},[157,890,741],{"class":167},[157,892,893,895,898,900,902,904,906,908],{"class":159,"line":311},[157,894,875],{"class":167},[157,896,897],{"class":574},"fix",[157,899,830],{"class":167},[157,901,217],{"class":167},[157,903,850],{"class":167},[157,905,781],{"class":180},[157,907,830],{"class":167},[157,909,741],{"class":167},[157,911,912,914,917,919,921,923,925],{"class":159,"line":526},[157,913,875],{"class":167},[157,915,916],{"class":574},"link",[157,918,830],{"class":167},[157,920,217],{"class":167},[157,922,850],{"class":167},[157,924,797],{"class":180},[157,926,927],{"class":167},"\"\n",[157,929,930],{"class":159,"line":531},[157,931,932],{"class":167},"  }\n",[157,934,936],{"class":159,"line":935},9,[157,937,938],{"class":167},"}\n",[81,940,941,942,944,945,947,948,950],{},"With ",[154,943,878],{},", ",[154,946,897],{},", and ",[154,949,916],{}," fields, anyone debugging—human or AI—can immediately understand the root cause and how to resolve it.",[106,952,954],{"id":953},"why-context-matters","Why Context Matters",[81,956,957,958,961],{},"We're entering an era where AI agents build, debug, and maintain applications. These agents need ",[84,959,960],{},"structured context"," to work effectively:",[963,964,965,973,980],"ul",{},[966,967,968,972],"li",{},[84,969,970],{},[154,971,878],{},": The root cause, so the agent understands what went wrong",[966,974,975,979],{},[84,976,977],{},[154,978,897],{},": An actionable solution the agent can suggest or apply",[966,981,982,986],{},[84,983,984],{},[154,985,916],{},": Documentation for complex issues",[81,988,989,990,993,994,997],{},"Traditional ",[154,991,992],{},"console.log"," and generic ",[154,995,996],{},"throw new Error()"," provide no actionable context. evlog's structured output is designed for both humans and AI to parse and act on.",[106,999,1001],{"id":1000},"next-steps","Next Steps",[963,1003,1004,1009],{},[966,1005,1006,1008],{},[92,1007,15],{"href":16}," - Install evlog in your project",[966,1010,1011,1013],{},[92,1012,20],{"href":21}," - Get up and running in minutes",[1015,1016,1017],"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":152,"searchDepth":189,"depth":189,"links":1019},[1020,1021,1022,1023,1024],{"id":108,"depth":189,"text":109},{"id":140,"depth":189,"text":141},{"id":669,"depth":189,"text":41},{"id":953,"depth":189,"text":954},{"id":1000,"depth":189,"text":1001},"A TypeScript logging library focused on wide events and structured error handling. Replace scattered logs with one comprehensive event per request.","md",[1028,1029],{"label":20,"icon":23,"to":21},{"label":1030,"icon":1031,"to":1032,"target":1033},"GitHub","i-simple-icons-github","https://github.com/hugorcd/evlog","_blank",{},{"icon":13},{"title":10,"description":1025},"W7gBDCOIUxDHb91XHWczrs3KLVmXeWKRXUCeYJJW0UU",[1039,1040],null,{"title":15,"path":16,"stem":17,"description":1041,"icon":18,"children":-1},"Install evlog in your Nuxt, Nitro, Cloudflare Workers, or standalone TypeScript project. Configure sampling, log draining, and client transport.",1770218711454]