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