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