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