[{"data":1,"prerenderedAt":1961},["ShallowReactive",2],{"navigation_docs":3,"-frameworks-cloudflare-workers":219,"-frameworks-cloudflare-workers-surround":1956},[4,30,105,139,188,205],{"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},"Frameworks","/frameworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100],{"title":36,"path":37,"stem":38,"icon":39},"Overview","/frameworks/overview","2.frameworks/00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","/frameworks/nuxt","2.frameworks/01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","/frameworks/nextjs","2.frameworks/02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","/frameworks/sveltekit","2.frameworks/03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","/frameworks/nitro","2.frameworks/04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","/frameworks/tanstack-start","2.frameworks/05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","/frameworks/nestjs","2.frameworks/06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","/frameworks/express","2.frameworks/07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","/frameworks/hono","2.frameworks/08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","/frameworks/fastify","2.frameworks/09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","/frameworks/elysia","2.frameworks/10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"Cloudflare Workers","/frameworks/cloudflare-workers","2.frameworks/11.cloudflare-workers","i-simple-icons-cloudflare",{"title":96,"path":97,"stem":98,"icon":99},"Standalone","/frameworks/standalone","2.frameworks/12.standalone","i-simple-icons-typescript",{"title":101,"path":102,"stem":103,"icon":104},"Astro","/frameworks/astro","2.frameworks/13.astro","i-simple-icons-astro",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Core Concepts","/core-concepts","3.core-concepts",[110,115,120,125,129,134],{"title":111,"path":112,"stem":113,"icon":114},"Wide Events","/core-concepts/wide-events","3.core-concepts/1.wide-events","i-lucide-layers",{"title":116,"path":117,"stem":118,"icon":119},"Structured Errors","/core-concepts/structured-errors","3.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":121,"path":122,"stem":123,"icon":124},"Best Practices","/core-concepts/best-practices","3.core-concepts/3.best-practices","i-lucide-shield-check",{"title":126,"path":127,"stem":128,"icon":99},"Typed Fields","/core-concepts/typed-fields","3.core-concepts/4.typed-fields",{"title":130,"path":131,"stem":132,"icon":133},"Sampling","/core-concepts/sampling","3.core-concepts/5.sampling","i-lucide-filter",{"title":135,"path":136,"stem":137,"icon":138},"Client Logging","/core-concepts/client-logging","3.core-concepts/6.client-logging","i-lucide-monitor",{"title":140,"path":141,"stem":142,"children":143,"page":29},"Adapters","/adapters","4.adapters",[144,148,153,158,163,168,173,178,183],{"title":36,"path":145,"stem":146,"icon":147},"/adapters/overview","4.adapters/1.overview","i-custom-plug",{"title":149,"path":150,"stem":151,"icon":152},"Axiom","/adapters/axiom","4.adapters/2.axiom","i-custom-axiom",{"title":154,"path":155,"stem":156,"icon":157},"OTLP","/adapters/otlp","4.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":159,"path":160,"stem":161,"icon":162},"PostHog","/adapters/posthog","4.adapters/4.posthog","i-simple-icons-posthog",{"title":164,"path":165,"stem":166,"icon":167},"Sentry","/adapters/sentry","4.adapters/5.sentry","i-simple-icons-sentry",{"title":169,"path":170,"stem":171,"icon":172},"Better Stack","/adapters/better-stack","4.adapters/6.better-stack","i-simple-icons-betterstack",{"title":174,"path":175,"stem":176,"icon":177},"Custom Adapters","/adapters/custom","4.adapters/7.custom","i-lucide-code",{"title":179,"path":180,"stem":181,"icon":182},"Pipeline","/adapters/pipeline","4.adapters/8.pipeline","i-lucide-workflow",{"title":184,"path":185,"stem":186,"icon":187},"Browser","/adapters/browser","4.adapters/9.browser","i-lucide-globe",{"title":189,"path":190,"stem":191,"children":192,"page":29},"Enrichers","/enrichers","5.enrichers",[193,196,201],{"title":36,"path":194,"stem":195,"icon":28},"/enrichers/overview","5.enrichers/1.overview",{"title":197,"path":198,"stem":199,"icon":200},"Built-in","/enrichers/built-in","5.enrichers/2.built-in","i-lucide-puzzle",{"title":202,"path":203,"stem":204,"icon":177},"Custom","/enrichers/custom","5.enrichers/3.custom",{"title":206,"path":207,"stem":208,"children":209,"page":29},"NuxtHub","/nuxthub","6.nuxthub",[210,214],{"title":36,"path":211,"stem":212,"icon":213},"/nuxthub/overview","6.nuxthub/1.overview","i-lucide-database",{"title":215,"path":216,"stem":217,"icon":218},"Retention","/nuxthub/retention","6.nuxthub/2.retention","i-lucide-clock",{"id":220,"title":91,"body":221,"description":1949,"extension":1950,"links":1951,"meta":1952,"navigation":1953,"path":92,"seo":1954,"stem":93,"__hash__":1955},"docs/2.frameworks/11.cloudflare-workers.md",{"type":222,"value":223,"toc":1938},"minimark",[224,237,241,246,271,275,570,588,596,599,602,990,1056,1060,1067,1588,1592,1598,1882,1892,1896,1899,1917,1921,1934],[225,226,227,228,232,233,236],"p",{},"The ",[229,230,231],"code",{},"evlog/workers"," adapter provides factory functions for creating request-scoped loggers with Cloudflare-specific context. Unlike framework integrations, Workers require manual ",[229,234,235],{},"log.emit()"," calls since there is no middleware lifecycle to hook into.",[238,239,20],"h2",{"id":240},"quick-start",[242,243,245],"h3",{"id":244},"_1-install","1. Install",[247,248,253],"pre",{"className":249,"code":250,"language":251,"meta":252,"style":252},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add evlog\n","bash","",[229,254,255],{"__ignoreMap":252},[256,257,260,264,268],"span",{"class":258,"line":259},"line",1,[256,261,263],{"class":262},"sBMFI","bun",[256,265,267],{"class":266},"sfazB"," add",[256,269,270],{"class":266}," evlog\n",[242,272,274],{"id":273},"_2-initialize-and-create-request-loggers","2. Initialize and create request loggers",[247,276,281],{"className":277,"code":278,"filename":279,"language":280,"meta":252,"style":252},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initWorkersLogger, createWorkersLogger } from 'evlog/workers'\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n})\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n\n    log.set({ action: 'handle_request' })\n\n    // ... your handler logic\n\n    log.emit()\n    return Response.json({ ok: true })\n  },\n}\n","src/worker.ts","typescript",[229,282,283,317,324,337,365,374,379,391,439,459,464,497,502,509,514,527,558,564],{"__ignoreMap":252},[256,284,285,289,293,297,300,303,306,309,312,314],{"class":258,"line":259},[256,286,288],{"class":287},"s7zQu","import",[256,290,292],{"class":291},"sMK4o"," {",[256,294,296],{"class":295},"sTEyZ"," initWorkersLogger",[256,298,299],{"class":291},",",[256,301,302],{"class":295}," createWorkersLogger",[256,304,305],{"class":291}," }",[256,307,308],{"class":287}," from",[256,310,311],{"class":291}," '",[256,313,231],{"class":266},[256,315,316],{"class":291},"'\n",[256,318,320],{"class":258,"line":319},2,[256,321,323],{"emptyLinePlaceholder":322},true,"\n",[256,325,327,331,334],{"class":258,"line":326},3,[256,328,330],{"class":329},"s2Zo4","initWorkersLogger",[256,332,333],{"class":295},"(",[256,335,336],{"class":291},"{\n",[256,338,340,344,347,349,352,354,356,359,362],{"class":258,"line":339},4,[256,341,343],{"class":342},"swJcz","  env",[256,345,346],{"class":291},":",[256,348,292],{"class":291},[256,350,351],{"class":342}," service",[256,353,346],{"class":291},[256,355,311],{"class":291},[256,357,358],{"class":266},"my-worker",[256,360,361],{"class":291},"'",[256,363,364],{"class":291}," },\n",[256,366,368,371],{"class":258,"line":367},5,[256,369,370],{"class":291},"}",[256,372,373],{"class":295},")\n",[256,375,377],{"class":258,"line":376},6,[256,378,323],{"emptyLinePlaceholder":322},[256,380,382,385,388],{"class":258,"line":381},7,[256,383,384],{"class":287},"export",[256,386,387],{"class":287}," default",[256,389,390],{"class":291}," {\n",[256,392,394,398,401,403,407,409,412,414,417,419,422,425,428,431,434,437],{"class":258,"line":393},8,[256,395,397],{"class":396},"spNyl","  async",[256,399,400],{"class":342}," fetch",[256,402,333],{"class":291},[256,404,406],{"class":405},"sHdIc","request",[256,408,346],{"class":291},[256,410,411],{"class":262}," Request",[256,413,299],{"class":291},[256,415,416],{"class":405}," env",[256,418,346],{"class":291},[256,420,421],{"class":262}," Env",[256,423,424],{"class":291},"):",[256,426,427],{"class":262}," Promise",[256,429,430],{"class":291},"\u003C",[256,432,433],{"class":262},"Response",[256,435,436],{"class":291},">",[256,438,390],{"class":291},[256,440,442,445,448,451,453,455,457],{"class":258,"line":441},9,[256,443,444],{"class":396},"    const",[256,446,447],{"class":295}," log",[256,449,450],{"class":291}," =",[256,452,302],{"class":329},[256,454,333],{"class":342},[256,456,406],{"class":295},[256,458,373],{"class":342},[256,460,462],{"class":258,"line":461},10,[256,463,323],{"emptyLinePlaceholder":322},[256,465,467,470,473,476,478,481,484,486,488,491,493,495],{"class":258,"line":466},11,[256,468,469],{"class":295},"    log",[256,471,472],{"class":291},".",[256,474,475],{"class":329},"set",[256,477,333],{"class":342},[256,479,480],{"class":291},"{",[256,482,483],{"class":342}," action",[256,485,346],{"class":291},[256,487,311],{"class":291},[256,489,490],{"class":266},"handle_request",[256,492,361],{"class":291},[256,494,305],{"class":291},[256,496,373],{"class":342},[256,498,500],{"class":258,"line":499},12,[256,501,323],{"emptyLinePlaceholder":322},[256,503,505],{"class":258,"line":504},13,[256,506,508],{"class":507},"sHwdD","    // ... your handler logic\n",[256,510,512],{"class":258,"line":511},14,[256,513,323],{"emptyLinePlaceholder":322},[256,515,517,519,521,524],{"class":258,"line":516},15,[256,518,469],{"class":295},[256,520,472],{"class":291},[256,522,523],{"class":329},"emit",[256,525,526],{"class":342},"()\n",[256,528,530,533,536,538,541,543,545,548,550,554,556],{"class":258,"line":529},16,[256,531,532],{"class":287},"    return",[256,534,535],{"class":295}," Response",[256,537,472],{"class":291},[256,539,540],{"class":329},"json",[256,542,333],{"class":342},[256,544,480],{"class":291},[256,546,547],{"class":342}," ok",[256,549,346],{"class":291},[256,551,553],{"class":552},"sfNiH"," true",[256,555,305],{"class":291},[256,557,373],{"class":342},[256,559,561],{"class":258,"line":560},17,[256,562,563],{"class":291},"  },\n",[256,565,567],{"class":258,"line":566},18,[256,568,569],{"class":291},"}\n",[225,571,572,575,576,579,580,583,584,587],{},[229,573,574],{},"createWorkersLogger(request)"," automatically extracts ",[229,577,578],{},"method",", ",[229,581,582],{},"path",", and ",[229,585,586],{},"cf-ray"," from the request.",[589,590,592,593,595],"callout",{"color":591,"icon":13},"info","You must call ",[229,594,235],{}," manually before returning a response. Workers don't have a request lifecycle hook to auto-emit.",[238,597,111],{"id":598},"wide-events",[225,600,601],{},"Build up context progressively, then emit at the end:",[247,603,605],{"className":277,"code":604,"filename":279,"language":280,"meta":252,"style":252},"export default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n    const url = new URL(request.url)\n\n    log.set({ route: url.pathname })\n\n    const user = await env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(url.searchParams.get('userId')).first()\n    log.set({ user: { id: user.id, plan: user.plan } })\n\n    const orders = await env.DB.prepare('SELECT COUNT(*) as count FROM orders WHERE user_id = ?').bind(user.id).first()\n    log.set({ orders: { count: orders.count } })\n\n    log.emit()\n    return Response.json({ user, orders })\n  },\n}\n",[229,606,607,615,649,665,691,695,723,727,801,851,855,908,944,948,958,982,986],{"__ignoreMap":252},[256,608,609,611,613],{"class":258,"line":259},[256,610,384],{"class":287},[256,612,387],{"class":287},[256,614,390],{"class":291},[256,616,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647],{"class":258,"line":319},[256,618,397],{"class":396},[256,620,400],{"class":342},[256,622,333],{"class":291},[256,624,406],{"class":405},[256,626,346],{"class":291},[256,628,411],{"class":262},[256,630,299],{"class":291},[256,632,416],{"class":405},[256,634,346],{"class":291},[256,636,421],{"class":262},[256,638,424],{"class":291},[256,640,427],{"class":262},[256,642,430],{"class":291},[256,644,433],{"class":262},[256,646,436],{"class":291},[256,648,390],{"class":291},[256,650,651,653,655,657,659,661,663],{"class":258,"line":326},[256,652,444],{"class":396},[256,654,447],{"class":295},[256,656,450],{"class":291},[256,658,302],{"class":329},[256,660,333],{"class":342},[256,662,406],{"class":295},[256,664,373],{"class":342},[256,666,667,669,672,674,677,680,682,684,686,689],{"class":258,"line":339},[256,668,444],{"class":396},[256,670,671],{"class":295}," url",[256,673,450],{"class":291},[256,675,676],{"class":291}," new",[256,678,679],{"class":329}," URL",[256,681,333],{"class":342},[256,683,406],{"class":295},[256,685,472],{"class":291},[256,687,688],{"class":295},"url",[256,690,373],{"class":342},[256,692,693],{"class":258,"line":367},[256,694,323],{"emptyLinePlaceholder":322},[256,696,697,699,701,703,705,707,710,712,714,716,719,721],{"class":258,"line":376},[256,698,469],{"class":295},[256,700,472],{"class":291},[256,702,475],{"class":329},[256,704,333],{"class":342},[256,706,480],{"class":291},[256,708,709],{"class":342}," route",[256,711,346],{"class":291},[256,713,671],{"class":295},[256,715,472],{"class":291},[256,717,718],{"class":295},"pathname",[256,720,305],{"class":291},[256,722,373],{"class":342},[256,724,725],{"class":258,"line":381},[256,726,323],{"emptyLinePlaceholder":322},[256,728,729,731,734,736,739,741,743,746,748,751,753,755,758,760,763,765,768,770,772,774,777,779,782,784,786,789,791,794,796,799],{"class":258,"line":393},[256,730,444],{"class":396},[256,732,733],{"class":295}," user",[256,735,450],{"class":291},[256,737,738],{"class":287}," await",[256,740,416],{"class":295},[256,742,472],{"class":291},[256,744,745],{"class":295},"DB",[256,747,472],{"class":291},[256,749,750],{"class":329},"prepare",[256,752,333],{"class":342},[256,754,361],{"class":291},[256,756,757],{"class":266},"SELECT * FROM users WHERE id = ?",[256,759,361],{"class":291},[256,761,762],{"class":342},")",[256,764,472],{"class":291},[256,766,767],{"class":329},"bind",[256,769,333],{"class":342},[256,771,688],{"class":295},[256,773,472],{"class":291},[256,775,776],{"class":295},"searchParams",[256,778,472],{"class":291},[256,780,781],{"class":329},"get",[256,783,333],{"class":342},[256,785,361],{"class":291},[256,787,788],{"class":266},"userId",[256,790,361],{"class":291},[256,792,793],{"class":342},"))",[256,795,472],{"class":291},[256,797,798],{"class":329},"first",[256,800,526],{"class":342},[256,802,803,805,807,809,811,813,815,817,819,822,824,826,828,831,833,836,838,840,842,845,847,849],{"class":258,"line":441},[256,804,469],{"class":295},[256,806,472],{"class":291},[256,808,475],{"class":329},[256,810,333],{"class":342},[256,812,480],{"class":291},[256,814,733],{"class":342},[256,816,346],{"class":291},[256,818,292],{"class":291},[256,820,821],{"class":342}," id",[256,823,346],{"class":291},[256,825,733],{"class":295},[256,827,472],{"class":291},[256,829,830],{"class":295},"id",[256,832,299],{"class":291},[256,834,835],{"class":342}," plan",[256,837,346],{"class":291},[256,839,733],{"class":295},[256,841,472],{"class":291},[256,843,844],{"class":295},"plan",[256,846,305],{"class":291},[256,848,305],{"class":291},[256,850,373],{"class":342},[256,852,853],{"class":258,"line":461},[256,854,323],{"emptyLinePlaceholder":322},[256,856,857,859,862,864,866,868,870,872,874,876,878,880,883,885,887,889,891,893,896,898,900,902,904,906],{"class":258,"line":466},[256,858,444],{"class":396},[256,860,861],{"class":295}," orders",[256,863,450],{"class":291},[256,865,738],{"class":287},[256,867,416],{"class":295},[256,869,472],{"class":291},[256,871,745],{"class":295},[256,873,472],{"class":291},[256,875,750],{"class":329},[256,877,333],{"class":342},[256,879,361],{"class":291},[256,881,882],{"class":266},"SELECT COUNT(*) as count FROM orders WHERE user_id = ?",[256,884,361],{"class":291},[256,886,762],{"class":342},[256,888,472],{"class":291},[256,890,767],{"class":329},[256,892,333],{"class":342},[256,894,895],{"class":295},"user",[256,897,472],{"class":291},[256,899,830],{"class":295},[256,901,762],{"class":342},[256,903,472],{"class":291},[256,905,798],{"class":329},[256,907,526],{"class":342},[256,909,910,912,914,916,918,920,922,924,926,929,931,933,935,938,940,942],{"class":258,"line":499},[256,911,469],{"class":295},[256,913,472],{"class":291},[256,915,475],{"class":329},[256,917,333],{"class":342},[256,919,480],{"class":291},[256,921,861],{"class":342},[256,923,346],{"class":291},[256,925,292],{"class":291},[256,927,928],{"class":342}," count",[256,930,346],{"class":291},[256,932,861],{"class":295},[256,934,472],{"class":291},[256,936,937],{"class":295},"count",[256,939,305],{"class":291},[256,941,305],{"class":291},[256,943,373],{"class":342},[256,945,946],{"class":258,"line":504},[256,947,323],{"emptyLinePlaceholder":322},[256,949,950,952,954,956],{"class":258,"line":511},[256,951,469],{"class":295},[256,953,472],{"class":291},[256,955,523],{"class":329},[256,957,526],{"class":342},[256,959,960,962,964,966,968,970,972,974,976,978,980],{"class":258,"line":516},[256,961,532],{"class":287},[256,963,535],{"class":295},[256,965,472],{"class":291},[256,967,540],{"class":329},[256,969,333],{"class":342},[256,971,480],{"class":291},[256,973,733],{"class":295},[256,975,299],{"class":291},[256,977,861],{"class":295},[256,979,305],{"class":291},[256,981,373],{"class":342},[256,983,984],{"class":258,"line":529},[256,985,563],{"class":291},[256,987,988],{"class":258,"line":560},[256,989,569],{"class":291},[247,991,994],{"className":249,"code":992,"filename":993,"language":251,"meta":252,"style":252},"14:58:15 INFO [my-worker] GET /api/users 200 in 12ms\n  ├─ orders: count=5\n  ├─ user: id=usr_123 plan=pro\n  ├─ route: /api/users\n  └─ requestId: 4a8ff3a8-...\n","Terminal output",[229,995,996,1007,1022,1035,1045],{"__ignoreMap":252},[256,997,998,1001,1004],{"class":258,"line":259},[256,999,1000],{"class":262},"14:58:15",[256,1002,1003],{"class":266}," INFO",[256,1005,1006],{"class":295}," [my-worker] GET /api/users 200 in 12ms\n",[256,1008,1009,1012,1015,1018],{"class":258,"line":319},[256,1010,1011],{"class":262},"  ├─",[256,1013,1014],{"class":266}," orders:",[256,1016,1017],{"class":266}," count=",[256,1019,1021],{"class":1020},"sbssI","5\n",[256,1023,1024,1026,1029,1032],{"class":258,"line":326},[256,1025,1011],{"class":262},[256,1027,1028],{"class":266}," user:",[256,1030,1031],{"class":266}," id=usr_123",[256,1033,1034],{"class":266}," plan=pro\n",[256,1036,1037,1039,1042],{"class":258,"line":339},[256,1038,1011],{"class":262},[256,1040,1041],{"class":266}," route:",[256,1043,1044],{"class":266}," /api/users\n",[256,1046,1047,1050,1053],{"class":258,"line":367},[256,1048,1049],{"class":262},"  └─",[256,1051,1052],{"class":266}," requestId:",[256,1054,1055],{"class":266}," 4a8ff3a8-...\n",[238,1057,1059],{"id":1058},"error-handling","Error Handling",[225,1061,1062,1063,1066],{},"Use ",[229,1064,1065],{},"createError"," for structured errors and handle them with try/catch:",[247,1068,1070],{"className":277,"code":1069,"filename":279,"language":280,"meta":252,"style":252},"import { createError, parseError } from 'evlog'\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const log = createWorkersLogger(request)\n\n    try {\n      const body = await request.json()\n      log.set({ payment: { amount: body.amount } })\n\n      if (body.amount \u003C= 0) {\n        throw createError({\n          status: 400,\n          message: 'Invalid payment amount',\n          why: 'The amount must be a positive number',\n          fix: 'Pass a positive integer in cents',\n        })\n      }\n\n      log.emit()\n      return Response.json({ success: true })\n    } catch (error) {\n      log.error(error instanceof Error ? error : new Error(String(error)))\n      log.emit()\n\n      const parsed = parseError(error)\n      return Response.json({\n        message: parsed.message,\n        why: parsed.why,\n        fix: parsed.fix,\n      }, { status: parsed.status })\n    }\n  },\n}\n",[229,1071,1072,1097,1101,1109,1143,1159,1163,1170,1191,1229,1233,1259,1270,1283,1299,1315,1331,1338,1343,1348,1359,1386,1404,1448,1459,1464,1482,1497,1514,1531,1548,1572,1578,1583],{"__ignoreMap":252},[256,1073,1074,1076,1078,1081,1083,1086,1088,1090,1092,1095],{"class":258,"line":259},[256,1075,288],{"class":287},[256,1077,292],{"class":291},[256,1079,1080],{"class":295}," createError",[256,1082,299],{"class":291},[256,1084,1085],{"class":295}," parseError",[256,1087,305],{"class":291},[256,1089,308],{"class":287},[256,1091,311],{"class":291},[256,1093,1094],{"class":266},"evlog",[256,1096,316],{"class":291},[256,1098,1099],{"class":258,"line":319},[256,1100,323],{"emptyLinePlaceholder":322},[256,1102,1103,1105,1107],{"class":258,"line":326},[256,1104,384],{"class":287},[256,1106,387],{"class":287},[256,1108,390],{"class":291},[256,1110,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141],{"class":258,"line":339},[256,1112,397],{"class":396},[256,1114,400],{"class":342},[256,1116,333],{"class":291},[256,1118,406],{"class":405},[256,1120,346],{"class":291},[256,1122,411],{"class":262},[256,1124,299],{"class":291},[256,1126,416],{"class":405},[256,1128,346],{"class":291},[256,1130,421],{"class":262},[256,1132,424],{"class":291},[256,1134,427],{"class":262},[256,1136,430],{"class":291},[256,1138,433],{"class":262},[256,1140,436],{"class":291},[256,1142,390],{"class":291},[256,1144,1145,1147,1149,1151,1153,1155,1157],{"class":258,"line":367},[256,1146,444],{"class":396},[256,1148,447],{"class":295},[256,1150,450],{"class":291},[256,1152,302],{"class":329},[256,1154,333],{"class":342},[256,1156,406],{"class":295},[256,1158,373],{"class":342},[256,1160,1161],{"class":258,"line":376},[256,1162,323],{"emptyLinePlaceholder":322},[256,1164,1165,1168],{"class":258,"line":381},[256,1166,1167],{"class":287},"    try",[256,1169,390],{"class":291},[256,1171,1172,1175,1178,1180,1182,1185,1187,1189],{"class":258,"line":393},[256,1173,1174],{"class":396},"      const",[256,1176,1177],{"class":295}," body",[256,1179,450],{"class":291},[256,1181,738],{"class":287},[256,1183,1184],{"class":295}," request",[256,1186,472],{"class":291},[256,1188,540],{"class":329},[256,1190,526],{"class":342},[256,1192,1193,1196,1198,1200,1202,1204,1207,1209,1211,1214,1216,1218,1220,1223,1225,1227],{"class":258,"line":441},[256,1194,1195],{"class":295},"      log",[256,1197,472],{"class":291},[256,1199,475],{"class":329},[256,1201,333],{"class":342},[256,1203,480],{"class":291},[256,1205,1206],{"class":342}," payment",[256,1208,346],{"class":291},[256,1210,292],{"class":291},[256,1212,1213],{"class":342}," amount",[256,1215,346],{"class":291},[256,1217,1177],{"class":295},[256,1219,472],{"class":291},[256,1221,1222],{"class":295},"amount",[256,1224,305],{"class":291},[256,1226,305],{"class":291},[256,1228,373],{"class":342},[256,1230,1231],{"class":258,"line":461},[256,1232,323],{"emptyLinePlaceholder":322},[256,1234,1235,1238,1241,1244,1246,1248,1251,1254,1257],{"class":258,"line":466},[256,1236,1237],{"class":287},"      if",[256,1239,1240],{"class":342}," (",[256,1242,1243],{"class":295},"body",[256,1245,472],{"class":291},[256,1247,1222],{"class":295},[256,1249,1250],{"class":291}," \u003C=",[256,1252,1253],{"class":1020}," 0",[256,1255,1256],{"class":342},") ",[256,1258,336],{"class":291},[256,1260,1261,1264,1266,1268],{"class":258,"line":499},[256,1262,1263],{"class":287},"        throw",[256,1265,1080],{"class":329},[256,1267,333],{"class":342},[256,1269,336],{"class":291},[256,1271,1272,1275,1277,1280],{"class":258,"line":504},[256,1273,1274],{"class":342},"          status",[256,1276,346],{"class":291},[256,1278,1279],{"class":1020}," 400",[256,1281,1282],{"class":291},",\n",[256,1284,1285,1288,1290,1292,1295,1297],{"class":258,"line":511},[256,1286,1287],{"class":342},"          message",[256,1289,346],{"class":291},[256,1291,311],{"class":291},[256,1293,1294],{"class":266},"Invalid payment amount",[256,1296,361],{"class":291},[256,1298,1282],{"class":291},[256,1300,1301,1304,1306,1308,1311,1313],{"class":258,"line":516},[256,1302,1303],{"class":342},"          why",[256,1305,346],{"class":291},[256,1307,311],{"class":291},[256,1309,1310],{"class":266},"The amount must be a positive number",[256,1312,361],{"class":291},[256,1314,1282],{"class":291},[256,1316,1317,1320,1322,1324,1327,1329],{"class":258,"line":529},[256,1318,1319],{"class":342},"          fix",[256,1321,346],{"class":291},[256,1323,311],{"class":291},[256,1325,1326],{"class":266},"Pass a positive integer in cents",[256,1328,361],{"class":291},[256,1330,1282],{"class":291},[256,1332,1333,1336],{"class":258,"line":560},[256,1334,1335],{"class":291},"        }",[256,1337,373],{"class":342},[256,1339,1340],{"class":258,"line":566},[256,1341,1342],{"class":291},"      }\n",[256,1344,1346],{"class":258,"line":1345},19,[256,1347,323],{"emptyLinePlaceholder":322},[256,1349,1351,1353,1355,1357],{"class":258,"line":1350},20,[256,1352,1195],{"class":295},[256,1354,472],{"class":291},[256,1356,523],{"class":329},[256,1358,526],{"class":342},[256,1360,1362,1365,1367,1369,1371,1373,1375,1378,1380,1382,1384],{"class":258,"line":1361},21,[256,1363,1364],{"class":287},"      return",[256,1366,535],{"class":295},[256,1368,472],{"class":291},[256,1370,540],{"class":329},[256,1372,333],{"class":342},[256,1374,480],{"class":291},[256,1376,1377],{"class":342}," success",[256,1379,346],{"class":291},[256,1381,553],{"class":552},[256,1383,305],{"class":291},[256,1385,373],{"class":342},[256,1387,1389,1392,1395,1397,1400,1402],{"class":258,"line":1388},22,[256,1390,1391],{"class":291},"    }",[256,1393,1394],{"class":287}," catch",[256,1396,1240],{"class":342},[256,1398,1399],{"class":295},"error",[256,1401,1256],{"class":342},[256,1403,336],{"class":291},[256,1405,1407,1409,1411,1413,1415,1417,1420,1423,1426,1429,1432,1434,1436,1438,1441,1443,1445],{"class":258,"line":1406},23,[256,1408,1195],{"class":295},[256,1410,472],{"class":291},[256,1412,1399],{"class":329},[256,1414,333],{"class":342},[256,1416,1399],{"class":295},[256,1418,1419],{"class":291}," instanceof",[256,1421,1422],{"class":262}," Error",[256,1424,1425],{"class":291}," ?",[256,1427,1428],{"class":295}," error",[256,1430,1431],{"class":291}," :",[256,1433,676],{"class":291},[256,1435,1422],{"class":329},[256,1437,333],{"class":342},[256,1439,1440],{"class":329},"String",[256,1442,333],{"class":342},[256,1444,1399],{"class":295},[256,1446,1447],{"class":342},")))\n",[256,1449,1451,1453,1455,1457],{"class":258,"line":1450},24,[256,1452,1195],{"class":295},[256,1454,472],{"class":291},[256,1456,523],{"class":329},[256,1458,526],{"class":342},[256,1460,1462],{"class":258,"line":1461},25,[256,1463,323],{"emptyLinePlaceholder":322},[256,1465,1467,1469,1472,1474,1476,1478,1480],{"class":258,"line":1466},26,[256,1468,1174],{"class":396},[256,1470,1471],{"class":295}," parsed",[256,1473,450],{"class":291},[256,1475,1085],{"class":329},[256,1477,333],{"class":342},[256,1479,1399],{"class":295},[256,1481,373],{"class":342},[256,1483,1485,1487,1489,1491,1493,1495],{"class":258,"line":1484},27,[256,1486,1364],{"class":287},[256,1488,535],{"class":295},[256,1490,472],{"class":291},[256,1492,540],{"class":329},[256,1494,333],{"class":342},[256,1496,336],{"class":291},[256,1498,1500,1503,1505,1507,1509,1512],{"class":258,"line":1499},28,[256,1501,1502],{"class":342},"        message",[256,1504,346],{"class":291},[256,1506,1471],{"class":295},[256,1508,472],{"class":291},[256,1510,1511],{"class":295},"message",[256,1513,1282],{"class":291},[256,1515,1517,1520,1522,1524,1526,1529],{"class":258,"line":1516},29,[256,1518,1519],{"class":342},"        why",[256,1521,346],{"class":291},[256,1523,1471],{"class":295},[256,1525,472],{"class":291},[256,1527,1528],{"class":295},"why",[256,1530,1282],{"class":291},[256,1532,1534,1537,1539,1541,1543,1546],{"class":258,"line":1533},30,[256,1535,1536],{"class":342},"        fix",[256,1538,346],{"class":291},[256,1540,1471],{"class":295},[256,1542,472],{"class":291},[256,1544,1545],{"class":295},"fix",[256,1547,1282],{"class":291},[256,1549,1551,1554,1556,1559,1561,1563,1565,1568,1570],{"class":258,"line":1550},31,[256,1552,1553],{"class":291},"      },",[256,1555,292],{"class":291},[256,1557,1558],{"class":342}," status",[256,1560,346],{"class":291},[256,1562,1471],{"class":295},[256,1564,472],{"class":291},[256,1566,1567],{"class":295},"status",[256,1569,305],{"class":291},[256,1571,373],{"class":342},[256,1573,1575],{"class":258,"line":1574},32,[256,1576,1577],{"class":291},"    }\n",[256,1579,1581],{"class":258,"line":1580},33,[256,1582,563],{"class":291},[256,1584,1586],{"class":258,"line":1585},34,[256,1587,569],{"class":291},[238,1589,1591],{"id":1590},"drain-enrichers","Drain & Enrichers",[225,1593,1594,1595,1597],{},"Configure drain and enrichers via ",[229,1596,330],{}," options:",[247,1599,1601],{"className":277,"code":1600,"filename":279,"language":280,"meta":252,"style":252},"import { initWorkersLogger, createWorkersLogger } from 'evlog/workers'\nimport { createAxiomDrain } from 'evlog/axiom'\nimport { createUserAgentEnricher } from 'evlog/enrichers'\nimport { createDrainPipeline } from 'evlog/pipeline'\nimport type { DrainContext } from 'evlog'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>({\n  batch: { size: 50, intervalMs: 5000 },\n})\nconst drain = pipeline(createAxiomDrain())\nconst userAgent = createUserAgentEnricher()\n\ninitWorkersLogger({\n  env: { service: 'my-worker' },\n  drain,\n  enrich: (ctx) => {\n    userAgent(ctx)\n  },\n})\n",[229,1602,1603,1625,1645,1665,1685,1707,1711,1735,1764,1770,1790,1803,1807,1815,1835,1842,1861,1872,1876],{"__ignoreMap":252},[256,1604,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623],{"class":258,"line":259},[256,1606,288],{"class":287},[256,1608,292],{"class":291},[256,1610,296],{"class":295},[256,1612,299],{"class":291},[256,1614,302],{"class":295},[256,1616,305],{"class":291},[256,1618,308],{"class":287},[256,1620,311],{"class":291},[256,1622,231],{"class":266},[256,1624,316],{"class":291},[256,1626,1627,1629,1631,1634,1636,1638,1640,1643],{"class":258,"line":319},[256,1628,288],{"class":287},[256,1630,292],{"class":291},[256,1632,1633],{"class":295}," createAxiomDrain",[256,1635,305],{"class":291},[256,1637,308],{"class":287},[256,1639,311],{"class":291},[256,1641,1642],{"class":266},"evlog/axiom",[256,1644,316],{"class":291},[256,1646,1647,1649,1651,1654,1656,1658,1660,1663],{"class":258,"line":326},[256,1648,288],{"class":287},[256,1650,292],{"class":291},[256,1652,1653],{"class":295}," createUserAgentEnricher",[256,1655,305],{"class":291},[256,1657,308],{"class":287},[256,1659,311],{"class":291},[256,1661,1662],{"class":266},"evlog/enrichers",[256,1664,316],{"class":291},[256,1666,1667,1669,1671,1674,1676,1678,1680,1683],{"class":258,"line":339},[256,1668,288],{"class":287},[256,1670,292],{"class":291},[256,1672,1673],{"class":295}," createDrainPipeline",[256,1675,305],{"class":291},[256,1677,308],{"class":287},[256,1679,311],{"class":291},[256,1681,1682],{"class":266},"evlog/pipeline",[256,1684,316],{"class":291},[256,1686,1687,1689,1692,1694,1697,1699,1701,1703,1705],{"class":258,"line":367},[256,1688,288],{"class":287},[256,1690,1691],{"class":287}," type",[256,1693,292],{"class":291},[256,1695,1696],{"class":295}," DrainContext",[256,1698,305],{"class":291},[256,1700,308],{"class":287},[256,1702,311],{"class":291},[256,1704,1094],{"class":266},[256,1706,316],{"class":291},[256,1708,1709],{"class":258,"line":376},[256,1710,323],{"emptyLinePlaceholder":322},[256,1712,1713,1716,1719,1722,1724,1726,1729,1731,1733],{"class":258,"line":381},[256,1714,1715],{"class":396},"const",[256,1717,1718],{"class":295}," pipeline ",[256,1720,1721],{"class":291},"=",[256,1723,1673],{"class":329},[256,1725,430],{"class":291},[256,1727,1728],{"class":262},"DrainContext",[256,1730,436],{"class":291},[256,1732,333],{"class":295},[256,1734,336],{"class":291},[256,1736,1737,1740,1742,1744,1747,1749,1752,1754,1757,1759,1762],{"class":258,"line":393},[256,1738,1739],{"class":342},"  batch",[256,1741,346],{"class":291},[256,1743,292],{"class":291},[256,1745,1746],{"class":342}," size",[256,1748,346],{"class":291},[256,1750,1751],{"class":1020}," 50",[256,1753,299],{"class":291},[256,1755,1756],{"class":342}," intervalMs",[256,1758,346],{"class":291},[256,1760,1761],{"class":1020}," 5000",[256,1763,364],{"class":291},[256,1765,1766,1768],{"class":258,"line":441},[256,1767,370],{"class":291},[256,1769,373],{"class":295},[256,1771,1772,1774,1777,1779,1782,1784,1787],{"class":258,"line":461},[256,1773,1715],{"class":396},[256,1775,1776],{"class":295}," drain ",[256,1778,1721],{"class":291},[256,1780,1781],{"class":329}," pipeline",[256,1783,333],{"class":295},[256,1785,1786],{"class":329},"createAxiomDrain",[256,1788,1789],{"class":295},"())\n",[256,1791,1792,1794,1797,1799,1801],{"class":258,"line":466},[256,1793,1715],{"class":396},[256,1795,1796],{"class":295}," userAgent ",[256,1798,1721],{"class":291},[256,1800,1653],{"class":329},[256,1802,526],{"class":295},[256,1804,1805],{"class":258,"line":499},[256,1806,323],{"emptyLinePlaceholder":322},[256,1808,1809,1811,1813],{"class":258,"line":504},[256,1810,330],{"class":329},[256,1812,333],{"class":295},[256,1814,336],{"class":291},[256,1816,1817,1819,1821,1823,1825,1827,1829,1831,1833],{"class":258,"line":511},[256,1818,343],{"class":342},[256,1820,346],{"class":291},[256,1822,292],{"class":291},[256,1824,351],{"class":342},[256,1826,346],{"class":291},[256,1828,311],{"class":291},[256,1830,358],{"class":266},[256,1832,361],{"class":291},[256,1834,364],{"class":291},[256,1836,1837,1840],{"class":258,"line":516},[256,1838,1839],{"class":295},"  drain",[256,1841,1282],{"class":291},[256,1843,1844,1847,1849,1851,1854,1856,1859],{"class":258,"line":529},[256,1845,1846],{"class":329},"  enrich",[256,1848,346],{"class":291},[256,1850,1240],{"class":291},[256,1852,1853],{"class":405},"ctx",[256,1855,762],{"class":291},[256,1857,1858],{"class":396}," =>",[256,1860,390],{"class":291},[256,1862,1863,1866,1868,1870],{"class":258,"line":560},[256,1864,1865],{"class":329},"    userAgent",[256,1867,333],{"class":342},[256,1869,1853],{"class":295},[256,1871,373],{"class":342},[256,1873,1874],{"class":258,"line":566},[256,1875,563],{"class":291},[256,1877,1878,1880],{"class":258,"line":1345},[256,1879,370],{"class":291},[256,1881,373],{"class":295},[589,1883,1884,1885,1888,1889,1891],{"color":591,"icon":13},"See the ",[1886,1887,140],"a",{"href":145}," and ",[1886,1890,189],{"href":194}," docs for all available drain adapters and enrichers.",[238,1893,1895],{"id":1894},"wrangler-configuration","Wrangler Configuration",[225,1897,1898],{},"Disable Cloudflare's default invocation logs to avoid duplicates when using evlog:",[247,1900,1905],{"className":1901,"code":1902,"filename":1903,"language":1904,"meta":252,"style":252},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[observability]\nenabled = false\n","wrangler.toml","toml",[229,1906,1907,1912],{"__ignoreMap":252},[256,1908,1909],{"class":258,"line":259},[256,1910,1911],{},"[observability]\n",[256,1913,1914],{"class":258,"line":319},[256,1915,1916],{},"enabled = false\n",[238,1918,1920],{"id":1919},"run-locally","Run Locally",[247,1922,1924],{"className":249,"code":1923,"language":251,"meta":252,"style":252},"wrangler dev\n",[229,1925,1926],{"__ignoreMap":252},[256,1927,1928,1931],{"class":258,"line":259},[256,1929,1930],{"class":262},"wrangler",[256,1932,1933],{"class":266}," dev\n",[1935,1936,1937],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":252,"searchDepth":319,"depth":319,"links":1939},[1940,1944,1945,1946,1947,1948],{"id":240,"depth":319,"text":20,"children":1941},[1942,1943],{"id":244,"depth":326,"text":245},{"id":273,"depth":326,"text":274},{"id":598,"depth":319,"text":111},{"id":1058,"depth":319,"text":1059},{"id":1590,"depth":319,"text":1591},{"id":1894,"depth":319,"text":1895},{"id":1919,"depth":319,"text":1920},"Using evlog with Cloudflare Workers — wide events, structured errors, and logging in Workers and Durable Objects.","md",null,{},{"title":91,"icon":94},{"title":91,"description":1949},"TM4fDm1Z9TVtuKLBrFFDPPWTsZpiE9-VdK7pV1T1tDs",[1957,1959],{"title":86,"path":87,"stem":88,"description":1958,"icon":89,"children":-1},"Using evlog with Elysia — automatic wide events, structured errors, drain adapters, enrichers, and tail sampling in Elysia applications.",{"title":96,"path":97,"stem":98,"description":1960,"icon":99,"children":-1},"Using evlog in standalone TypeScript — scripts, CLI tools, queues, cron jobs, and any TypeScript process.",1772991604619]