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