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