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