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