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