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