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