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