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