[{"data":1,"prerenderedAt":1284},["ShallowReactive",2],{"navigation_docs":3,"-adapters-overview":171,"-adapters-overview-surround":1279},[4,30,55,105,122,136],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","/getting-started/agent-skills","1.getting-started/4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Core Concepts","/core-concepts","2.core-concepts",[35,40,45,50],{"title":36,"path":37,"stem":38,"icon":39},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events","i-lucide-layers",{"title":41,"path":42,"stem":43,"icon":44},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":46,"path":47,"stem":48,"icon":49},"Best Practices","/core-concepts/best-practices","2.core-concepts/3.best-practices","i-lucide-shield-check",{"title":51,"path":52,"stem":53,"icon":54},"Typed Fields","/core-concepts/typed-fields","2.core-concepts/4.typed-fields","i-simple-icons-typescript",{"title":56,"path":57,"stem":58,"children":59,"page":29},"Adapters","/adapters","3.adapters",[60,65,70,75,80,85,90,95,100],{"title":61,"path":62,"stem":63,"icon":64},"Overview","/adapters/overview","3.adapters/1.overview","i-custom-plug",{"title":66,"path":67,"stem":68,"icon":69},"Axiom","/adapters/axiom","3.adapters/2.axiom","i-custom-axiom",{"title":71,"path":72,"stem":73,"icon":74},"OTLP","/adapters/otlp","3.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":76,"path":77,"stem":78,"icon":79},"PostHog","/adapters/posthog","3.adapters/4.posthog","i-simple-icons-posthog",{"title":81,"path":82,"stem":83,"icon":84},"Sentry","/adapters/sentry","3.adapters/5.sentry","i-simple-icons-sentry",{"title":86,"path":87,"stem":88,"icon":89},"Better Stack","/adapters/better-stack","3.adapters/6.better-stack","i-simple-icons-betterstack",{"title":91,"path":92,"stem":93,"icon":94},"Custom Adapters","/adapters/custom","3.adapters/7.custom","i-lucide-code",{"title":96,"path":97,"stem":98,"icon":99},"Pipeline","/adapters/pipeline","3.adapters/8.pipeline","i-lucide-workflow",{"title":101,"path":102,"stem":103,"icon":104},"Browser","/adapters/browser","3.adapters/9.browser","i-lucide-globe",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Enrichers","/enrichers","4.enrichers",[110,113,118],{"title":61,"path":111,"stem":112,"icon":28},"/enrichers/overview","4.enrichers/1.overview",{"title":114,"path":115,"stem":116,"icon":117},"Built-in","/enrichers/built-in","4.enrichers/2.built-in","i-lucide-puzzle",{"title":119,"path":120,"stem":121,"icon":94},"Custom","/enrichers/custom","4.enrichers/3.custom",{"title":123,"path":124,"stem":125,"children":126,"page":29},"NuxtHub","/nuxthub","5.nuxthub",[127,131],{"title":61,"path":128,"stem":129,"icon":130},"/nuxthub/overview","5.nuxthub/1.overview","i-lucide-database",{"title":132,"path":133,"stem":134,"icon":135},"Retention","/nuxthub/retention","5.nuxthub/2.retention","i-lucide-clock",{"title":137,"path":138,"stem":139,"children":140,"page":29},"Examples","/examples","6.examples",[141,146,151,156,161,166],{"title":142,"path":143,"stem":144,"icon":145},"Next.js","/examples/nextjs","6.examples/1.nextjs","i-simple-icons-nextdotjs",{"title":147,"path":148,"stem":149,"icon":150},"TanStack Start","/examples/tanstack-start","6.examples/2.tanstack-start","i-custom-tanstack",{"title":152,"path":153,"stem":154,"icon":155},"Hono","/examples/hono","6.examples/3.hono","i-simple-icons-hono",{"title":157,"path":158,"stem":159,"icon":160},"Express","/examples/express","6.examples/4.express","i-simple-icons-express",{"title":162,"path":163,"stem":164,"icon":165},"Elysia","/examples/elysia","6.examples/5.elysia","i-custom-elysia",{"title":167,"path":168,"stem":169,"icon":170},"Fastify","/examples/fastify","6.examples/6.fastify","i-simple-icons-fastify",{"id":172,"title":173,"body":174,"description":1266,"extension":1267,"links":1268,"meta":1275,"navigation":1276,"path":62,"seo":1277,"stem":63,"__hash__":1278},"docs/3.adapters/1.overview.md","Adapters Overview",{"type":175,"value":176,"toc":1258},"minimark",[177,181,186,199,325,338,342,370,374,385,745,758,762,765,950,954,960,1037,1054,1058,1061,1170,1254],[178,179,180],"p",{},"Adapters let you send logs to external observability platforms. evlog provides built-in adapters for popular services, and you can create custom adapters for any destination.",[182,183,185],"h2",{"id":184},"how-adapters-work","How Adapters Work",[178,187,188,189,193,194,198],{},"Adapters hook into the ",[190,191,192],"code",{},"evlog:drain"," event, which fires after each request completes. The drain runs in ",[195,196,197],"strong",{},"fire-and-forget"," mode, meaning it never blocks the HTTP response.",[200,201,207],"pre",{"className":202,"code":203,"filename":204,"language":205,"meta":206,"style":206},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createAxiomDrain } from 'evlog/axiom'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createAxiomDrain())\n})\n","server/plugins/evlog-drain.ts","typescript","",[190,208,209,242,249,281,316],{"__ignoreMap":206},[210,211,214,218,222,226,229,232,235,239],"span",{"class":212,"line":213},"line",1,[210,215,217],{"class":216},"s7zQu","import",[210,219,221],{"class":220},"sMK4o"," {",[210,223,225],{"class":224},"sTEyZ"," createAxiomDrain",[210,227,228],{"class":220}," }",[210,230,231],{"class":216}," from",[210,233,234],{"class":220}," '",[210,236,238],{"class":237},"sfazB","evlog/axiom",[210,240,241],{"class":220},"'\n",[210,243,245],{"class":212,"line":244},2,[210,246,248],{"emptyLinePlaceholder":247},true,"\n",[210,250,252,255,258,262,265,267,271,274,278],{"class":212,"line":251},3,[210,253,254],{"class":216},"export",[210,256,257],{"class":216}," default",[210,259,261],{"class":260},"s2Zo4"," defineNitroPlugin",[210,263,264],{"class":224},"(",[210,266,264],{"class":220},[210,268,270],{"class":269},"sHdIc","nitroApp",[210,272,273],{"class":220},")",[210,275,277],{"class":276},"spNyl"," =>",[210,279,280],{"class":220}," {\n",[210,282,284,287,290,293,295,298,301,304,306,308,311,313],{"class":212,"line":283},4,[210,285,286],{"class":224},"  nitroApp",[210,288,289],{"class":220},".",[210,291,292],{"class":224},"hooks",[210,294,289],{"class":220},[210,296,297],{"class":260},"hook",[210,299,264],{"class":300},"swJcz",[210,302,303],{"class":220},"'",[210,305,192],{"class":237},[210,307,303],{"class":220},[210,309,310],{"class":220},",",[210,312,225],{"class":260},[210,314,315],{"class":300},"())\n",[210,317,319,322],{"class":212,"line":318},5,[210,320,321],{"class":220},"}",[210,323,324],{"class":224},")\n",[326,327,330,333,334,337],"callout",{"color":328,"icon":329},"info","i-lucide-cloud",[195,331,332],{},"Serverless Support:"," On Cloudflare Workers and Vercel Edge, evlog automatically uses ",[190,335,336],{},"waitUntil()"," to ensure drains complete before the runtime terminates. No additional configuration needed.",[182,339,341],{"id":340},"available-adapters","Available Adapters",[343,344,345,349,352,355,358,361,364,367],"card-group",{},[346,347,348],"card",{"icon":69,"title":66,"to":67},"Send logs to Axiom for powerful querying and dashboards.",[346,350,351],{"icon":74,"title":71,"to":72},"OpenTelemetry Protocol for Grafana, Datadog, Honeycomb, and more.",[346,353,354],{"icon":79,"title":76,"to":77},"Send logs to PostHog Logs for structured logging and observability.",[346,356,357],{"icon":84,"title":81,"to":82},"Send structured logs to Sentry Logs for high-cardinality querying.",[346,359,360],{"icon":89,"title":86,"to":87},"Send logs to Better Stack for log management and alerting.",[346,362,363],{"icon":94,"title":119,"to":92},"Build your own adapter for any destination.",[346,365,366],{"icon":104,"title":101,"to":102},"Send browser logs to your server without framework coupling.",[346,368,369],{"icon":99,"title":96,"to":97},"Batch events, retry on failure, and handle buffer overflow.",[182,371,373],{"id":372},"standalone-usage-without-nitro","Standalone Usage (Without Nitro)",[178,375,376,377,380,381,384],{},"In plain TypeScript or Bun scripts, use the ",[190,378,379],{},"drain"," option in ",[190,382,383],{},"initLogger"," instead of Nitro hooks. Every emitted event is drained automatically.",[200,386,389],{"className":202,"code":387,"filename":388,"language":205,"meta":206,"style":206},"import type { DrainContext } from 'evlog'\nimport { initLogger, log, createRequestLogger } from 'evlog'\nimport { createAxiomDrain } from 'evlog/axiom'\nimport { createDrainPipeline } from 'evlog/pipeline'\n\nconst pipeline = createDrainPipeline\u003CDrainContext>()\nconst drain = pipeline(createAxiomDrain())\n\ninitLogger({\n  env: { service: 'my-script' },\n  drain,\n})\n\nlog.info({ action: 'job_started' }) // drained automatically\n\nconst reqLog = createRequestLogger({ method: 'POST', path: '/process' })\nreqLog.set({ processed: 42 })\nreqLog.emit() // drained automatically\n\nawait drain.flush()\n","index.ts",[190,390,391,414,443,461,481,485,512,532,537,547,573,582,589,594,630,635,681,709,724,729],{"__ignoreMap":206},[210,392,393,395,398,400,403,405,407,409,412],{"class":212,"line":213},[210,394,217],{"class":216},[210,396,397],{"class":216}," type",[210,399,221],{"class":220},[210,401,402],{"class":224}," DrainContext",[210,404,228],{"class":220},[210,406,231],{"class":216},[210,408,234],{"class":220},[210,410,411],{"class":237},"evlog",[210,413,241],{"class":220},[210,415,416,418,420,423,425,428,430,433,435,437,439,441],{"class":212,"line":244},[210,417,217],{"class":216},[210,419,221],{"class":220},[210,421,422],{"class":224}," initLogger",[210,424,310],{"class":220},[210,426,427],{"class":224}," log",[210,429,310],{"class":220},[210,431,432],{"class":224}," createRequestLogger",[210,434,228],{"class":220},[210,436,231],{"class":216},[210,438,234],{"class":220},[210,440,411],{"class":237},[210,442,241],{"class":220},[210,444,445,447,449,451,453,455,457,459],{"class":212,"line":251},[210,446,217],{"class":216},[210,448,221],{"class":220},[210,450,225],{"class":224},[210,452,228],{"class":220},[210,454,231],{"class":216},[210,456,234],{"class":220},[210,458,238],{"class":237},[210,460,241],{"class":220},[210,462,463,465,467,470,472,474,476,479],{"class":212,"line":283},[210,464,217],{"class":216},[210,466,221],{"class":220},[210,468,469],{"class":224}," createDrainPipeline",[210,471,228],{"class":220},[210,473,231],{"class":216},[210,475,234],{"class":220},[210,477,478],{"class":237},"evlog/pipeline",[210,480,241],{"class":220},[210,482,483],{"class":212,"line":318},[210,484,248],{"emptyLinePlaceholder":247},[210,486,488,491,494,497,499,502,506,509],{"class":212,"line":487},6,[210,489,490],{"class":276},"const",[210,492,493],{"class":224}," pipeline ",[210,495,496],{"class":220},"=",[210,498,469],{"class":260},[210,500,501],{"class":220},"\u003C",[210,503,505],{"class":504},"sBMFI","DrainContext",[210,507,508],{"class":220},">",[210,510,511],{"class":224},"()\n",[210,513,515,517,520,522,525,527,530],{"class":212,"line":514},7,[210,516,490],{"class":276},[210,518,519],{"class":224}," drain ",[210,521,496],{"class":220},[210,523,524],{"class":260}," pipeline",[210,526,264],{"class":224},[210,528,529],{"class":260},"createAxiomDrain",[210,531,315],{"class":224},[210,533,535],{"class":212,"line":534},8,[210,536,248],{"emptyLinePlaceholder":247},[210,538,540,542,544],{"class":212,"line":539},9,[210,541,383],{"class":260},[210,543,264],{"class":224},[210,545,546],{"class":220},"{\n",[210,548,550,553,556,558,561,563,565,568,570],{"class":212,"line":549},10,[210,551,552],{"class":300},"  env",[210,554,555],{"class":220},":",[210,557,221],{"class":220},[210,559,560],{"class":300}," service",[210,562,555],{"class":220},[210,564,234],{"class":220},[210,566,567],{"class":237},"my-script",[210,569,303],{"class":220},[210,571,572],{"class":220}," },\n",[210,574,576,579],{"class":212,"line":575},11,[210,577,578],{"class":224},"  drain",[210,580,581],{"class":220},",\n",[210,583,585,587],{"class":212,"line":584},12,[210,586,321],{"class":220},[210,588,324],{"class":224},[210,590,592],{"class":212,"line":591},13,[210,593,248],{"emptyLinePlaceholder":247},[210,595,597,600,602,604,606,609,612,614,616,619,621,623,626],{"class":212,"line":596},14,[210,598,599],{"class":224},"log",[210,601,289],{"class":220},[210,603,328],{"class":260},[210,605,264],{"class":224},[210,607,608],{"class":220},"{",[210,610,611],{"class":300}," action",[210,613,555],{"class":220},[210,615,234],{"class":220},[210,617,618],{"class":237},"job_started",[210,620,303],{"class":220},[210,622,228],{"class":220},[210,624,625],{"class":224},") ",[210,627,629],{"class":628},"sHwdD","// drained automatically\n",[210,631,633],{"class":212,"line":632},15,[210,634,248],{"emptyLinePlaceholder":247},[210,636,638,640,643,645,647,649,651,654,656,658,661,663,665,668,670,672,675,677,679],{"class":212,"line":637},16,[210,639,490],{"class":276},[210,641,642],{"class":224}," reqLog ",[210,644,496],{"class":220},[210,646,432],{"class":260},[210,648,264],{"class":224},[210,650,608],{"class":220},[210,652,653],{"class":300}," method",[210,655,555],{"class":220},[210,657,234],{"class":220},[210,659,660],{"class":237},"POST",[210,662,303],{"class":220},[210,664,310],{"class":220},[210,666,667],{"class":300}," path",[210,669,555],{"class":220},[210,671,234],{"class":220},[210,673,674],{"class":237},"/process",[210,676,303],{"class":220},[210,678,228],{"class":220},[210,680,324],{"class":224},[210,682,684,687,689,692,694,696,699,701,705,707],{"class":212,"line":683},17,[210,685,686],{"class":224},"reqLog",[210,688,289],{"class":220},[210,690,691],{"class":260},"set",[210,693,264],{"class":224},[210,695,608],{"class":220},[210,697,698],{"class":300}," processed",[210,700,555],{"class":220},[210,702,704],{"class":703},"sbssI"," 42",[210,706,228],{"class":220},[210,708,324],{"class":224},[210,710,712,714,716,719,722],{"class":212,"line":711},18,[210,713,686],{"class":224},[210,715,289],{"class":220},[210,717,718],{"class":260},"emit",[210,720,721],{"class":224},"() ",[210,723,629],{"class":628},[210,725,727],{"class":212,"line":726},19,[210,728,248],{"emptyLinePlaceholder":247},[210,730,732,735,738,740,743],{"class":212,"line":731},20,[210,733,734],{"class":216},"await",[210,736,737],{"class":224}," drain",[210,739,289],{"class":220},[210,741,742],{"class":260},"flush",[210,744,511],{"class":224},[326,746,749,750,757],{"color":747,"icon":748},"neutral","i-lucide-arrow-right","See the full ",[751,752,756],"a",{"href":753,"rel":754},"https://github.com/HugoRCD/evlog/tree/main/examples/bun-script",[755],"nofollow","bun-script example"," for a realistic batch processing script.",[182,759,761],{"id":760},"multiple-destinations","Multiple Destinations",[178,763,764],{},"Send logs to multiple services simultaneously:",[200,766,768],{"className":202,"code":767,"filename":204,"language":205,"meta":206,"style":206},"import { createAxiomDrain } from 'evlog/axiom'\nimport { createOTLPDrain } from 'evlog/otlp'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const axiom = createAxiomDrain()\n  const otlp = createOTLPDrain()\n\n  nitroApp.hooks.hook('evlog:drain', async (ctx) => {\n    await Promise.allSettled([axiom(ctx), otlp(ctx)])\n  })\n})\n",[190,769,770,788,808,812,832,847,860,864,901,937,944],{"__ignoreMap":206},[210,771,772,774,776,778,780,782,784,786],{"class":212,"line":213},[210,773,217],{"class":216},[210,775,221],{"class":220},[210,777,225],{"class":224},[210,779,228],{"class":220},[210,781,231],{"class":216},[210,783,234],{"class":220},[210,785,238],{"class":237},[210,787,241],{"class":220},[210,789,790,792,794,797,799,801,803,806],{"class":212,"line":244},[210,791,217],{"class":216},[210,793,221],{"class":220},[210,795,796],{"class":224}," createOTLPDrain",[210,798,228],{"class":220},[210,800,231],{"class":216},[210,802,234],{"class":220},[210,804,805],{"class":237},"evlog/otlp",[210,807,241],{"class":220},[210,809,810],{"class":212,"line":251},[210,811,248],{"emptyLinePlaceholder":247},[210,813,814,816,818,820,822,824,826,828,830],{"class":212,"line":283},[210,815,254],{"class":216},[210,817,257],{"class":216},[210,819,261],{"class":260},[210,821,264],{"class":224},[210,823,264],{"class":220},[210,825,270],{"class":269},[210,827,273],{"class":220},[210,829,277],{"class":276},[210,831,280],{"class":220},[210,833,834,837,840,843,845],{"class":212,"line":318},[210,835,836],{"class":276},"  const",[210,838,839],{"class":224}," axiom",[210,841,842],{"class":220}," =",[210,844,225],{"class":260},[210,846,511],{"class":300},[210,848,849,851,854,856,858],{"class":212,"line":487},[210,850,836],{"class":276},[210,852,853],{"class":224}," otlp",[210,855,842],{"class":220},[210,857,796],{"class":260},[210,859,511],{"class":300},[210,861,862],{"class":212,"line":514},[210,863,248],{"emptyLinePlaceholder":247},[210,865,866,868,870,872,874,876,878,880,882,884,886,889,892,895,897,899],{"class":212,"line":534},[210,867,286],{"class":224},[210,869,289],{"class":220},[210,871,292],{"class":224},[210,873,289],{"class":220},[210,875,297],{"class":260},[210,877,264],{"class":300},[210,879,303],{"class":220},[210,881,192],{"class":237},[210,883,303],{"class":220},[210,885,310],{"class":220},[210,887,888],{"class":276}," async",[210,890,891],{"class":220}," (",[210,893,894],{"class":269},"ctx",[210,896,273],{"class":220},[210,898,277],{"class":276},[210,900,280],{"class":220},[210,902,903,906,909,911,914,917,920,922,924,926,928,930,932,934],{"class":212,"line":539},[210,904,905],{"class":216},"    await",[210,907,908],{"class":504}," Promise",[210,910,289],{"class":220},[210,912,913],{"class":260},"allSettled",[210,915,916],{"class":300},"([",[210,918,919],{"class":260},"axiom",[210,921,264],{"class":300},[210,923,894],{"class":224},[210,925,273],{"class":300},[210,927,310],{"class":220},[210,929,853],{"class":260},[210,931,264],{"class":300},[210,933,894],{"class":224},[210,935,936],{"class":300},")])\n",[210,938,939,942],{"class":212,"line":549},[210,940,941],{"class":220},"  }",[210,943,324],{"class":300},[210,945,946,948],{"class":212,"line":575},[210,947,321],{"class":220},[210,949,324],{"class":224},[182,951,953],{"id":952},"drain-context","Drain Context",[178,955,956,957,959],{},"Every adapter receives a ",[190,958,505],{}," with:",[961,962,963,979],"table",{},[964,965,966],"thead",{},[967,968,969,973,976],"tr",{},[970,971,972],"th",{},"Field",[970,974,975],{},"Type",[970,977,978],{},"Description",[980,981,982,998,1023],"tbody",{},[967,983,984,990,995],{},[985,986,987],"td",{},[190,988,989],{},"event",[985,991,992],{},[190,993,994],{},"WideEvent",[985,996,997],{},"The complete log event with all accumulated context",[967,999,1000,1005,1010],{},[985,1001,1002],{},[190,1003,1004],{},"request",[985,1006,1007],{},[190,1008,1009],{},"object",[985,1011,1012,1013,1016,1017,1016,1020,273],{},"Request metadata (",[190,1014,1015],{},"method",", ",[190,1018,1019],{},"path",[190,1021,1022],{},"requestId",[967,1024,1025,1030,1034],{},[985,1026,1027],{},[190,1028,1029],{},"headers",[985,1031,1032],{},[190,1033,1009],{},[985,1035,1036],{},"Safe HTTP headers (sensitive headers are filtered)",[326,1038,1040,1043,1044,1016,1047,1016,1050,1053],{"color":1039,"icon":49},"success",[195,1041,1042],{},"Security:"," Sensitive headers (",[190,1045,1046],{},"authorization",[190,1048,1049],{},"cookie",[190,1051,1052],{},"x-api-key",", etc.) are automatically filtered and never passed to adapters.",[182,1055,1057],{"id":1056},"zero-config-setup","Zero-Config Setup",[178,1059,1060],{},"All adapters support automatic configuration via environment variables. No code changes needed when deploying to different environments:",[200,1062,1067],{"className":1063,"code":1064,"filename":1065,"language":1066,"meta":206,"style":206},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Axiom\nNUXT_AXIOM_TOKEN=xaat-xxx\nNUXT_AXIOM_DATASET=my-logs\n\n# OTLP\nNUXT_OTLP_ENDPOINT=https://otlp.example.com\n\n# PostHog\nNUXT_POSTHOG_API_KEY=phc_xxx\n\n# Sentry\nNUXT_SENTRY_DSN=https://key@o0.ingest.sentry.io/123\n\n# Better Stack\nNUXT_BETTER_STACK_SOURCE_TOKEN=your-source-token\n",".env","bash",[190,1068,1069,1074,1084,1094,1098,1103,1113,1117,1122,1132,1136,1141,1151,1155,1160],{"__ignoreMap":206},[210,1070,1071],{"class":212,"line":213},[210,1072,1073],{"class":628},"# Axiom\n",[210,1075,1076,1079,1081],{"class":212,"line":244},[210,1077,1078],{"class":224},"NUXT_AXIOM_TOKEN",[210,1080,496],{"class":220},[210,1082,1083],{"class":237},"xaat-xxx\n",[210,1085,1086,1089,1091],{"class":212,"line":251},[210,1087,1088],{"class":224},"NUXT_AXIOM_DATASET",[210,1090,496],{"class":220},[210,1092,1093],{"class":237},"my-logs\n",[210,1095,1096],{"class":212,"line":283},[210,1097,248],{"emptyLinePlaceholder":247},[210,1099,1100],{"class":212,"line":318},[210,1101,1102],{"class":628},"# OTLP\n",[210,1104,1105,1108,1110],{"class":212,"line":487},[210,1106,1107],{"class":224},"NUXT_OTLP_ENDPOINT",[210,1109,496],{"class":220},[210,1111,1112],{"class":237},"https://otlp.example.com\n",[210,1114,1115],{"class":212,"line":514},[210,1116,248],{"emptyLinePlaceholder":247},[210,1118,1119],{"class":212,"line":534},[210,1120,1121],{"class":628},"# PostHog\n",[210,1123,1124,1127,1129],{"class":212,"line":539},[210,1125,1126],{"class":224},"NUXT_POSTHOG_API_KEY",[210,1128,496],{"class":220},[210,1130,1131],{"class":237},"phc_xxx\n",[210,1133,1134],{"class":212,"line":549},[210,1135,248],{"emptyLinePlaceholder":247},[210,1137,1138],{"class":212,"line":575},[210,1139,1140],{"class":628},"# Sentry\n",[210,1142,1143,1146,1148],{"class":212,"line":584},[210,1144,1145],{"class":224},"NUXT_SENTRY_DSN",[210,1147,496],{"class":220},[210,1149,1150],{"class":237},"https://key@o0.ingest.sentry.io/123\n",[210,1152,1153],{"class":212,"line":591},[210,1154,248],{"emptyLinePlaceholder":247},[210,1156,1157],{"class":212,"line":596},[210,1158,1159],{"class":628},"# Better Stack\n",[210,1161,1162,1165,1167],{"class":212,"line":632},[210,1163,1164],{"class":224},"NUXT_BETTER_STACK_SOURCE_TOKEN",[210,1166,496],{"class":220},[210,1168,1169],{"class":237},"your-source-token\n",[200,1171,1173],{"className":202,"code":1172,"filename":204,"language":205,"meta":206,"style":206},"import { createAxiomDrain } from 'evlog/axiom'\n\nexport default defineNitroPlugin((nitroApp) => {\n  // Automatically reads from env vars\n  nitroApp.hooks.hook('evlog:drain', createAxiomDrain())\n})\n",[190,1174,1175,1193,1197,1217,1222,1248],{"__ignoreMap":206},[210,1176,1177,1179,1181,1183,1185,1187,1189,1191],{"class":212,"line":213},[210,1178,217],{"class":216},[210,1180,221],{"class":220},[210,1182,225],{"class":224},[210,1184,228],{"class":220},[210,1186,231],{"class":216},[210,1188,234],{"class":220},[210,1190,238],{"class":237},[210,1192,241],{"class":220},[210,1194,1195],{"class":212,"line":244},[210,1196,248],{"emptyLinePlaceholder":247},[210,1198,1199,1201,1203,1205,1207,1209,1211,1213,1215],{"class":212,"line":251},[210,1200,254],{"class":216},[210,1202,257],{"class":216},[210,1204,261],{"class":260},[210,1206,264],{"class":224},[210,1208,264],{"class":220},[210,1210,270],{"class":269},[210,1212,273],{"class":220},[210,1214,277],{"class":276},[210,1216,280],{"class":220},[210,1218,1219],{"class":212,"line":283},[210,1220,1221],{"class":628},"  // Automatically reads from env vars\n",[210,1223,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246],{"class":212,"line":318},[210,1225,286],{"class":224},[210,1227,289],{"class":220},[210,1229,292],{"class":224},[210,1231,289],{"class":220},[210,1233,297],{"class":260},[210,1235,264],{"class":300},[210,1237,303],{"class":220},[210,1239,192],{"class":237},[210,1241,303],{"class":220},[210,1243,310],{"class":220},[210,1245,225],{"class":260},[210,1247,315],{"class":300},[210,1249,1250,1252],{"class":212,"line":487},[210,1251,321],{"class":220},[210,1253,324],{"class":224},[1255,1256,1257],"style",{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":206,"searchDepth":244,"depth":244,"links":1259},[1260,1261,1262,1263,1264,1265],{"id":184,"depth":244,"text":185},{"id":340,"depth":244,"text":341},{"id":372,"depth":244,"text":373},{"id":760,"depth":244,"text":761},{"id":952,"depth":244,"text":953},{"id":1056,"depth":244,"text":1057},"Send your logs to external services with evlog adapters. Built-in support for popular observability platforms and custom destinations.","md",[1269,1271,1272,1273,1274],{"label":66,"icon":69,"to":67,"color":747,"variant":1270},"subtle",{"label":71,"icon":74,"to":72,"color":747,"variant":1270},{"label":76,"icon":79,"to":77,"color":747,"variant":1270},{"label":81,"icon":84,"to":82,"color":747,"variant":1270},{"label":86,"icon":89,"to":87,"color":747,"variant":1270},{},{"title":61,"icon":64},{"title":173,"description":1266},"kAeXwZDQSlQfPmHSx_a0ez4mEvcnA_bhqqMNYewBGMk",[1280,1282],{"title":51,"path":52,"stem":53,"description":1281,"icon":54,"children":-1},"Add compile-time type safety to your wide events with TypeScript module augmentation. Prevent typos and ensure consistent field names across your codebase.",{"title":66,"path":67,"stem":68,"description":1283,"icon":69,"children":-1},"Send wide events to Axiom for powerful querying, dashboards, and alerting. Zero-config setup with environment variables and automatic batching.",1772880293005]