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