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