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