[{"data":1,"prerenderedAt":2096},["ShallowReactive",2],{"navigation_docs":3,"-core-concepts-redaction":308,"-core-concepts-redaction-surround":2091},[4,35,80,124,212,292],{"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,75],{"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},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"icon":69},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":71,"path":72,"stem":73,"icon":74},"Better Auth Integration","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth","i-simple-icons-betterauth",{"title":76,"path":77,"stem":78,"icon":79},"Audit Logs","\u002Flogging\u002Faudit","2.logging\u002F7.audit","i-lucide-shield-check",{"title":81,"path":82,"stem":83,"children":84,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[85,90,95,100,105,109,114,119],{"title":86,"path":87,"stem":88,"icon":89},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":91,"path":92,"stem":93,"icon":94},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":96,"path":97,"stem":98,"icon":99},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":101,"path":102,"stem":103,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":79},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":110,"path":111,"stem":112,"icon":113},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":115,"path":116,"stem":117,"icon":118},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":120,"path":121,"stem":122,"icon":123},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":125,"path":126,"stem":127,"children":128,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[129,133,138,143,148,153,158,163,168,173,178,183,188,193,197,202,207],{"title":41,"path":130,"stem":131,"icon":132},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":134,"path":135,"stem":136,"icon":137},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":139,"path":140,"stem":141,"icon":142},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":144,"path":145,"stem":146,"icon":147},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":149,"path":150,"stem":151,"icon":152},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":154,"path":155,"stem":156,"icon":157},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":159,"path":160,"stem":161,"icon":162},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":164,"path":165,"stem":166,"icon":167},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":169,"path":170,"stem":171,"icon":172},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":174,"path":175,"stem":176,"icon":177},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":179,"path":180,"stem":181,"icon":182},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":184,"path":185,"stem":186,"icon":187},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":189,"path":190,"stem":191,"icon":192},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":194,"path":195,"stem":196,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":198,"path":199,"stem":200,"icon":201},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":203,"path":204,"stem":205,"icon":206},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":208,"path":209,"stem":210,"icon":211},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":213,"path":214,"stem":215,"children":216,"page":34},"Adapters","\u002Fadapters","6.adapters",[217,257,272],{"title":218,"path":219,"stem":220,"children":221,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[222,227,232,237,242,247,252],{"title":223,"path":224,"stem":225,"icon":226},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":228,"path":229,"stem":230,"icon":231},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":233,"path":234,"stem":235,"icon":236},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":238,"path":239,"stem":240,"icon":241},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":243,"path":244,"stem":245,"icon":246},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":248,"path":249,"stem":250,"icon":251},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":253,"path":254,"stem":255,"icon":256},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":258,"path":259,"stem":260,"children":261,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[262,267],{"title":263,"path":264,"stem":265,"icon":266},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":268,"path":269,"stem":270,"icon":271},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":273,"path":274,"stem":275,"children":276,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[277,282,287],{"title":278,"path":279,"stem":280,"icon":281},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":283,"path":284,"stem":285,"icon":286},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":288,"path":289,"stem":290,"icon":291},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom","i-lucide-code",{"title":293,"path":294,"stem":295,"children":296,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[297,300,304],{"title":41,"path":298,"stem":299,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":301,"path":302,"stem":303,"icon":211},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":305,"path":306,"stem":307,"icon":291},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":309,"title":120,"body":310,"description":2080,"extension":2081,"links":2082,"meta":2087,"navigation":2088,"path":121,"seo":2089,"stem":122,"__hash__":2090},"docs\u002F3.core-concepts\u002F7.redaction.md",{"type":311,"value":312,"toc":2065},"minimark",[313,325,336,341,344,628,635,639,650,792,804,807,812,818,879,893,897,900,956,960,966,1049,1053,1056,1136,1140,1269,1287,1291,1294,1330,1337,1341,1344,1807,1811,1814,1928,1933,2035,2038,2042,2061],[314,315,316,317,321,322,324],"p",{},"Wide events capture comprehensive context, which makes it easy to accidentally log sensitive data. Auto-redaction scrubs PII from events ",[318,319,320],"strong",{},"before"," console output and ",[318,323,320],{}," any drain sees the data.",[314,326,327,330,331,335],{},[318,328,329],{},"Redaction is enabled by default in production"," (",[332,333,334],"code",{},"NODE_ENV === 'production'","). In development, it is off so you see full values for debugging. No configuration needed — just deploy.",[337,338,340],"h2",{"id":339},"opting-out","Opting Out",[314,342,343],{},"If you need to disable redaction in production:",[345,346,347,449,550],"code-group",{},[348,349,355],"pre",{"className":350,"code":351,"filename":352,"language":353,"meta":354,"style":354},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    redact: false,\n  },\n})\n","nuxt.config.ts","typescript","",[332,356,357,381,409,420,434,440],{"__ignoreMap":354},[358,359,362,366,369,373,377],"span",{"class":360,"line":361},"line",1,[358,363,365],{"class":364},"s7zQu","export",[358,367,368],{"class":364}," default",[358,370,372],{"class":371},"s2Zo4"," defineNuxtConfig",[358,374,376],{"class":375},"sTEyZ","(",[358,378,380],{"class":379},"sMK4o","{\n",[358,382,384,388,391,394,397,401,403,406],{"class":360,"line":383},2,[358,385,387],{"class":386},"swJcz","  modules",[358,389,390],{"class":379},":",[358,392,393],{"class":375}," [",[358,395,396],{"class":379},"'",[358,398,400],{"class":399},"sfazB","evlog\u002Fnuxt",[358,402,396],{"class":379},[358,404,405],{"class":375},"]",[358,407,408],{"class":379},",\n",[358,410,412,415,417],{"class":360,"line":411},3,[358,413,414],{"class":386},"  evlog",[358,416,390],{"class":379},[358,418,419],{"class":379}," {\n",[358,421,423,426,428,432],{"class":360,"line":422},4,[358,424,425],{"class":386},"    redact",[358,427,390],{"class":379},[358,429,431],{"class":430},"sfNiH"," false",[358,433,408],{"class":379},[358,435,437],{"class":360,"line":436},5,[358,438,439],{"class":379},"  },\n",[358,441,443,446],{"class":360,"line":442},6,[358,444,445],{"class":379},"}",[358,447,448],{"class":375},")\n",[348,450,453],{"className":350,"code":451,"filename":452,"language":353,"meta":354,"style":354},"import { createEvlog } from 'evlog\u002Fnext'\n\nexport const { withEvlog, useLogger } = createEvlog({\n  service: 'my-app',\n  redact: false,\n})\n","lib\u002Fevlog.ts (Next.js)",[332,454,455,481,487,517,533,544],{"__ignoreMap":354},[358,456,457,460,463,466,469,472,475,478],{"class":360,"line":361},[358,458,459],{"class":364},"import",[358,461,462],{"class":379}," {",[358,464,465],{"class":375}," createEvlog",[358,467,468],{"class":379}," }",[358,470,471],{"class":364}," from",[358,473,474],{"class":379}," '",[358,476,477],{"class":399},"evlog\u002Fnext",[358,479,480],{"class":379},"'\n",[358,482,483],{"class":360,"line":383},[358,484,486],{"emptyLinePlaceholder":485},true,"\n",[358,488,489,491,495,497,500,503,506,508,511,513,515],{"class":360,"line":411},[358,490,365],{"class":364},[358,492,494],{"class":493},"spNyl"," const",[358,496,462],{"class":379},[358,498,499],{"class":375}," withEvlog",[358,501,502],{"class":379},",",[358,504,505],{"class":375}," useLogger ",[358,507,445],{"class":379},[358,509,510],{"class":379}," =",[358,512,465],{"class":371},[358,514,376],{"class":375},[358,516,380],{"class":379},[358,518,519,522,524,526,529,531],{"class":360,"line":422},[358,520,521],{"class":386},"  service",[358,523,390],{"class":379},[358,525,474],{"class":379},[358,527,528],{"class":399},"my-app",[358,530,396],{"class":379},[358,532,408],{"class":379},[358,534,535,538,540,542],{"class":360,"line":436},[358,536,537],{"class":386},"  redact",[358,539,390],{"class":379},[358,541,431],{"class":430},[358,543,408],{"class":379},[358,545,546,548],{"class":360,"line":442},[358,547,445],{"class":379},[358,549,448],{"class":375},[348,551,554],{"className":350,"code":552,"filename":553,"language":353,"meta":354,"style":354},"import { initLogger } from 'evlog'\n\ninitLogger({\n  env: { service: 'my-app' },\n  redact: false,\n})\n","index.ts (Hono \u002F Express \u002F Fastify)",[332,555,556,576,580,589,612,622],{"__ignoreMap":354},[358,557,558,560,562,565,567,569,571,574],{"class":360,"line":361},[358,559,459],{"class":364},[358,561,462],{"class":379},[358,563,564],{"class":375}," initLogger",[358,566,468],{"class":379},[358,568,471],{"class":364},[358,570,474],{"class":379},[358,572,573],{"class":399},"evlog",[358,575,480],{"class":379},[358,577,578],{"class":360,"line":383},[358,579,486],{"emptyLinePlaceholder":485},[358,581,582,585,587],{"class":360,"line":411},[358,583,584],{"class":371},"initLogger",[358,586,376],{"class":375},[358,588,380],{"class":379},[358,590,591,594,596,598,601,603,605,607,609],{"class":360,"line":422},[358,592,593],{"class":386},"  env",[358,595,390],{"class":379},[358,597,462],{"class":379},[358,599,600],{"class":386}," service",[358,602,390],{"class":379},[358,604,474],{"class":379},[358,606,528],{"class":399},[358,608,396],{"class":379},[358,610,611],{"class":379}," },\n",[358,613,614,616,618,620],{"class":360,"line":436},[358,615,537],{"class":386},[358,617,390],{"class":379},[358,619,431],{"class":430},[358,621,408],{"class":379},[358,623,624,626],{"class":360,"line":442},[358,625,445],{"class":379},[358,627,448],{"class":375},[314,629,630,631,634],{},"You can also enable redaction explicitly in development with ",[332,632,633],{},"redact: true",".",[337,636,638],{"id":637},"smart-masking","Smart Masking",[314,640,641,642,645,646,649],{},"Built-in patterns use ",[318,643,644],{},"partial masking"," instead of flat ",[332,647,648],{},"[REDACTED]"," — preserving enough context for debugging while protecting the actual data.",[651,652,653,669],"table",{},[654,655,656],"thead",{},[657,658,659,663,666],"tr",{},[660,661,662],"th",{},"Pattern",[660,664,665],{},"Example Input",[660,667,668],{},"Masked Output",[670,671,672,690,707,724,741,758,775],"tbody",{},[657,673,674,680,685],{},[675,676,677],"td",{},[332,678,679],{},"creditCard",[675,681,682],{},[332,683,684],{},"4111111111111111",[675,686,687],{},[332,688,689],{},"****1111",[657,691,692,697,702],{},[675,693,694],{},[332,695,696],{},"email",[675,698,699],{},[332,700,701],{},"alice@example.com",[675,703,704],{},[332,705,706],{},"a***@***.com",[657,708,709,714,719],{},[675,710,711],{},[332,712,713],{},"ipv4",[675,715,716],{},[332,717,718],{},"192.168.1.100",[675,720,721],{},[332,722,723],{},"***.***.***.100",[657,725,726,731,736],{},[675,727,728],{},[332,729,730],{},"phone",[675,732,733],{},[332,734,735],{},"+33 6 12 34 56 78",[675,737,738],{},[332,739,740],{},"+33 ****5678",[657,742,743,748,753],{},[675,744,745],{},[332,746,747],{},"jwt",[675,749,750],{},[332,751,752],{},"eyJhbGciOiJIUzI1NiIs...",[675,754,755],{},[332,756,757],{},"eyJ***.***",[657,759,760,765,770],{},[675,761,762],{},[332,763,764],{},"bearer",[675,766,767],{},[332,768,769],{},"Bearer sk_live_abc123...",[675,771,772],{},[332,773,774],{},"Bearer ***",[657,776,777,782,787],{},[675,778,779],{},[332,780,781],{},"iban",[675,783,784],{},[332,785,786],{},"FR76 3000 6000 0112 ...189",[675,788,789],{},[332,790,791],{},"FR76****189",[793,794,796,799,800,803],"callout",{"color":795,"icon":13},"info",[332,797,798],{},"127.0.0.1"," and ",[332,801,802],{},"0.0.0.0"," are excluded from IPv4 masking since they are not real client addresses.",[337,805,91],{"id":806},"configuration",[808,809,811],"h3",{"id":810},"custom-paths","Custom Paths",[314,813,814,815,817],{},"Add dot-notation paths to redact specific fields with ",[332,816,648],{},", on top of the built-in patterns:",[348,819,821],{"className":350,"code":820,"language":353,"meta":354,"style":354},"evlog: {\n  redact: {\n    paths: ['user.password', 'headers.authorization'],\n  }\n}\n",[332,822,823,832,840,869,874],{"__ignoreMap":354},[358,824,825,828,830],{"class":360,"line":361},[358,826,573],{"class":827},"sBMFI",[358,829,390],{"class":379},[358,831,419],{"class":379},[358,833,834,836,838],{"class":360,"line":383},[358,835,537],{"class":827},[358,837,390],{"class":379},[358,839,419],{"class":379},[358,841,842,845,847,849,851,854,856,858,860,863,865,867],{"class":360,"line":411},[358,843,844],{"class":827},"    paths",[358,846,390],{"class":379},[358,848,393],{"class":386},[358,850,396],{"class":379},[358,852,853],{"class":399},"user.password",[358,855,396],{"class":379},[358,857,502],{"class":379},[358,859,474],{"class":379},[358,861,862],{"class":399},"headers.authorization",[358,864,396],{"class":379},[358,866,405],{"class":386},[358,868,408],{"class":379},[358,870,871],{"class":360,"line":422},[358,872,873],{"class":379},"  }\n",[358,875,876],{"class":360,"line":436},[358,877,878],{"class":379},"}\n",[314,880,881,882,885,886,889,890,892],{},"Path-based redaction replaces the ",[318,883,884],{},"entire value"," with the ",[332,887,888],{},"replacement"," string (default ",[332,891,648],{},"), regardless of content.",[808,894,896],{"id":895},"selective-built-ins","Selective Built-ins",[314,898,899],{},"Pick only the patterns you need:",[348,901,903],{"className":350,"code":902,"language":353,"meta":354,"style":354},"evlog: {\n  redact: {\n    builtins: ['email', 'creditCard'],\n  }\n}\n",[332,904,905,913,921,948,952],{"__ignoreMap":354},[358,906,907,909,911],{"class":360,"line":361},[358,908,573],{"class":827},[358,910,390],{"class":379},[358,912,419],{"class":379},[358,914,915,917,919],{"class":360,"line":383},[358,916,537],{"class":827},[358,918,390],{"class":379},[358,920,419],{"class":379},[358,922,923,926,928,930,932,934,936,938,940,942,944,946],{"class":360,"line":411},[358,924,925],{"class":827},"    builtins",[358,927,390],{"class":379},[358,929,393],{"class":386},[358,931,396],{"class":379},[358,933,696],{"class":399},[358,935,396],{"class":379},[358,937,502],{"class":379},[358,939,474],{"class":379},[358,941,679],{"class":399},[358,943,396],{"class":379},[358,945,405],{"class":386},[358,947,408],{"class":379},[358,949,950],{"class":360,"line":422},[358,951,873],{"class":379},[358,953,954],{"class":360,"line":436},[358,955,878],{"class":379},[808,957,959],{"id":958},"custom-patterns","Custom Patterns",[314,961,962,963,965],{},"Add your own regex patterns. These use the flat ",[332,964,888],{}," string, not smart masking:",[348,967,969],{"className":350,"code":968,"language":353,"meta":354,"style":354},"evlog: {\n  redact: {\n    patterns: [\u002FSECRET_\\w+\u002Fg, \u002Fsk_live_\\w+\u002Fg],\n    replacement: '***',\n  }\n}\n",[332,970,971,979,987,1025,1041,1045],{"__ignoreMap":354},[358,972,973,975,977],{"class":360,"line":361},[358,974,573],{"class":827},[358,976,390],{"class":379},[358,978,419],{"class":379},[358,980,981,983,985],{"class":360,"line":383},[358,982,537],{"class":827},[358,984,390],{"class":379},[358,986,419],{"class":379},[358,988,989,992,994,996,999,1002,1005,1009,1011,1014,1017,1019,1021,1023],{"class":360,"line":411},[358,990,991],{"class":827},"    patterns",[358,993,390],{"class":379},[358,995,393],{"class":386},[358,997,998],{"class":379},"\u002F",[358,1000,1001],{"class":399},"SECRET_\\w",[358,1003,1004],{"class":379},"+\u002F",[358,1006,1008],{"class":1007},"sbssI","g",[358,1010,502],{"class":379},[358,1012,1013],{"class":379}," \u002F",[358,1015,1016],{"class":399},"sk_live_\\w",[358,1018,1004],{"class":379},[358,1020,1008],{"class":1007},[358,1022,405],{"class":386},[358,1024,408],{"class":379},[358,1026,1027,1030,1032,1034,1037,1039],{"class":360,"line":422},[358,1028,1029],{"class":827},"    replacement",[358,1031,390],{"class":379},[358,1033,474],{"class":379},[358,1035,1036],{"class":399},"***",[358,1038,396],{"class":379},[358,1040,408],{"class":379},[358,1042,1043],{"class":360,"line":436},[358,1044,873],{"class":379},[358,1046,1047],{"class":360,"line":442},[358,1048,878],{"class":379},[808,1050,1052],{"id":1051},"disable-built-ins","Disable Built-ins",[314,1054,1055],{},"If you only want custom redaction:",[348,1057,1059],{"className":350,"code":1058,"language":353,"meta":354,"style":354},"evlog: {\n  redact: {\n    builtins: false,\n    paths: ['user.ssn'],\n    patterns: [\u002FINTERNAL_\\w+\u002Fg],\n  }\n}\n",[332,1060,1061,1069,1077,1087,1106,1127,1131],{"__ignoreMap":354},[358,1062,1063,1065,1067],{"class":360,"line":361},[358,1064,573],{"class":827},[358,1066,390],{"class":379},[358,1068,419],{"class":379},[358,1070,1071,1073,1075],{"class":360,"line":383},[358,1072,537],{"class":827},[358,1074,390],{"class":379},[358,1076,419],{"class":379},[358,1078,1079,1081,1083,1085],{"class":360,"line":411},[358,1080,925],{"class":827},[358,1082,390],{"class":379},[358,1084,431],{"class":430},[358,1086,408],{"class":379},[358,1088,1089,1091,1093,1095,1097,1100,1102,1104],{"class":360,"line":422},[358,1090,844],{"class":827},[358,1092,390],{"class":379},[358,1094,393],{"class":386},[358,1096,396],{"class":379},[358,1098,1099],{"class":399},"user.ssn",[358,1101,396],{"class":379},[358,1103,405],{"class":386},[358,1105,408],{"class":379},[358,1107,1108,1110,1112,1114,1116,1119,1121,1123,1125],{"class":360,"line":436},[358,1109,991],{"class":827},[358,1111,390],{"class":379},[358,1113,393],{"class":386},[358,1115,998],{"class":379},[358,1117,1118],{"class":399},"INTERNAL_\\w",[358,1120,1004],{"class":379},[358,1122,1008],{"class":1007},[358,1124,405],{"class":386},[358,1126,408],{"class":379},[358,1128,1129],{"class":360,"line":442},[358,1130,873],{"class":379},[358,1132,1134],{"class":360,"line":1133},7,[358,1135,878],{"class":379},[337,1137,1139],{"id":1138},"configuration-reference","Configuration Reference",[651,1141,1142,1158],{},[654,1143,1144],{},[657,1145,1146,1149,1152,1155],{},[660,1147,1148],{},"Option",[660,1150,1151],{},"Type",[660,1153,1154],{},"Default",[660,1156,1157],{},"Description",[670,1159,1160,1185,1208,1230,1250],{},[657,1161,1162,1167,1172,1178],{},[675,1163,1164],{},[332,1165,1166],{},"redact",[675,1168,1169],{},[332,1170,1171],{},"boolean | RedactConfig",[675,1173,1174,1177],{},[332,1175,1176],{},"true"," in production",[675,1179,1180,1181,1184],{},"Enabled by default in production. ",[332,1182,1183],{},"false"," to disable. Object for fine-grained control",[657,1186,1187,1192,1197,1202],{},[675,1188,1189],{},[332,1190,1191],{},"paths",[675,1193,1194],{},[332,1195,1196],{},"string[]",[675,1198,1199],{},[332,1200,1201],{},"undefined",[675,1203,1204,1205,1207],{},"Dot-notation paths to redact entirely (e.g. ",[332,1206,853],{},")",[657,1209,1210,1215,1220,1224],{},[675,1211,1212],{},[332,1213,1214],{},"patterns",[675,1216,1217],{},[332,1218,1219],{},"RegExp[]",[675,1221,1222],{},[332,1223,1201],{},[675,1225,1226,1227,1229],{},"Custom regex patterns. Uses flat ",[332,1228,888],{}," string",[657,1231,1232,1237,1242,1245],{},[675,1233,1234],{},[332,1235,1236],{},"builtins",[675,1238,1239],{},[332,1240,1241],{},"false | string[]",[675,1243,1244],{},"All enabled",[675,1246,1247,1249],{},[332,1248,1183],{}," disables built-ins. Array selects specific ones",[657,1251,1252,1256,1261,1266],{},[675,1253,1254],{},[332,1255,888],{},[675,1257,1258],{},[332,1259,1260],{},"string",[675,1262,1263],{},[332,1264,1265],{},"'[REDACTED]'",[675,1267,1268],{},"Replacement string for paths and custom patterns. Built-in patterns use smart masking instead",[314,1270,1271,1272,1274,1275,1274,1277,1274,1279,1274,1281,1274,1283,1274,1285,634],{},"Available built-in names: ",[332,1273,679],{},", ",[332,1276,696],{},[332,1278,713],{},[332,1280,730],{},[332,1282,747],{},[332,1284,764],{},[332,1286,781],{},[337,1288,1290],{"id":1289},"how-it-works","How It Works",[314,1292,1293],{},"Redaction runs inside the emit pipeline, after the wide event is fully built but before any output:",[1295,1296,1297,1306,1312,1318,1324],"ol",{},[1298,1299,1300,1303,1304],"li",{},[318,1301,1302],{},"Path redaction"," — targeted fields replaced with ",[332,1305,648],{},[1298,1307,1308,1311],{},[318,1309,1310],{},"Smart masking"," — built-in patterns scan all string values recursively with partial masking",[1298,1313,1314,1317],{},[318,1315,1316],{},"Pattern redaction"," — custom regex patterns scan all string values with flat replacement",[1298,1319,1320,1323],{},[318,1321,1322],{},"Console output"," — masked event printed to stdout",[1298,1325,1326,1329],{},[318,1327,1328],{},"Drain"," — masked event sent to external services",[793,1331,1332,1333,1336],{"color":795,"icon":23},"Redaction runs ",[318,1334,1335],{},"after"," the HTTP response is sent, so it adds zero latency to your API responses.",[337,1338,1340],{"id":1339},"production-example","Production Example",[314,1342,1343],{},"Redaction is already on by default in production. Combine with sampling for a typical setup:",[345,1345,1346,1536,1678],{},[348,1347,1349],{"className":350,"code":1348,"filename":352,"language":353,"meta":354,"style":354},"export default defineNuxtConfig({\n  modules: ['evlog\u002Fnuxt'],\n  evlog: {\n    env: { service: 'my-app' },\n  },\n  $production: {\n    evlog: {\n      sampling: {\n        rates: { info: 10, debug: 0 },\n        keep: [{ status: 400 }, { duration: 1000 }],\n      },\n    },\n  },\n})\n",[332,1350,1351,1363,1381,1389,1410,1414,1423,1432,1442,1472,1512,1518,1524,1529],{"__ignoreMap":354},[358,1352,1353,1355,1357,1359,1361],{"class":360,"line":361},[358,1354,365],{"class":364},[358,1356,368],{"class":364},[358,1358,372],{"class":371},[358,1360,376],{"class":375},[358,1362,380],{"class":379},[358,1364,1365,1367,1369,1371,1373,1375,1377,1379],{"class":360,"line":383},[358,1366,387],{"class":386},[358,1368,390],{"class":379},[358,1370,393],{"class":375},[358,1372,396],{"class":379},[358,1374,400],{"class":399},[358,1376,396],{"class":379},[358,1378,405],{"class":375},[358,1380,408],{"class":379},[358,1382,1383,1385,1387],{"class":360,"line":411},[358,1384,414],{"class":386},[358,1386,390],{"class":379},[358,1388,419],{"class":379},[358,1390,1391,1394,1396,1398,1400,1402,1404,1406,1408],{"class":360,"line":422},[358,1392,1393],{"class":386},"    env",[358,1395,390],{"class":379},[358,1397,462],{"class":379},[358,1399,600],{"class":386},[358,1401,390],{"class":379},[358,1403,474],{"class":379},[358,1405,528],{"class":399},[358,1407,396],{"class":379},[358,1409,611],{"class":379},[358,1411,1412],{"class":360,"line":436},[358,1413,439],{"class":379},[358,1415,1416,1419,1421],{"class":360,"line":442},[358,1417,1418],{"class":386},"  $production",[358,1420,390],{"class":379},[358,1422,419],{"class":379},[358,1424,1425,1428,1430],{"class":360,"line":1133},[358,1426,1427],{"class":386},"    evlog",[358,1429,390],{"class":379},[358,1431,419],{"class":379},[358,1433,1435,1438,1440],{"class":360,"line":1434},8,[358,1436,1437],{"class":386},"      sampling",[358,1439,390],{"class":379},[358,1441,419],{"class":379},[358,1443,1445,1448,1450,1452,1455,1457,1460,1462,1465,1467,1470],{"class":360,"line":1444},9,[358,1446,1447],{"class":386},"        rates",[358,1449,390],{"class":379},[358,1451,462],{"class":379},[358,1453,1454],{"class":386}," info",[358,1456,390],{"class":379},[358,1458,1459],{"class":1007}," 10",[358,1461,502],{"class":379},[358,1463,1464],{"class":386}," debug",[358,1466,390],{"class":379},[358,1468,1469],{"class":1007}," 0",[358,1471,611],{"class":379},[358,1473,1475,1478,1480,1482,1485,1488,1490,1493,1496,1498,1501,1503,1506,1508,1510],{"class":360,"line":1474},10,[358,1476,1477],{"class":386},"        keep",[358,1479,390],{"class":379},[358,1481,393],{"class":375},[358,1483,1484],{"class":379},"{",[358,1486,1487],{"class":386}," status",[358,1489,390],{"class":379},[358,1491,1492],{"class":1007}," 400",[358,1494,1495],{"class":379}," },",[358,1497,462],{"class":379},[358,1499,1500],{"class":386}," duration",[358,1502,390],{"class":379},[358,1504,1505],{"class":1007}," 1000",[358,1507,468],{"class":379},[358,1509,405],{"class":375},[358,1511,408],{"class":379},[358,1513,1515],{"class":360,"line":1514},11,[358,1516,1517],{"class":379},"      },\n",[358,1519,1521],{"class":360,"line":1520},12,[358,1522,1523],{"class":379},"    },\n",[358,1525,1527],{"class":360,"line":1526},13,[358,1528,439],{"class":379},[358,1530,1532,1534],{"class":360,"line":1531},14,[358,1533,445],{"class":379},[358,1535,448],{"class":375},[348,1537,1539],{"className":350,"code":1538,"filename":452,"language":353,"meta":354,"style":354},"import { createEvlog } from 'evlog\u002Fnext'\n\nexport const { withEvlog, useLogger } = createEvlog({\n  service: 'my-app',\n  sampling: {\n    rates: { info: 10, debug: 0 },\n    keep: [{ status: 400 }, { duration: 1000 }],\n  },\n})\n",[332,1540,1541,1559,1563,1587,1601,1610,1635,1668,1672],{"__ignoreMap":354},[358,1542,1543,1545,1547,1549,1551,1553,1555,1557],{"class":360,"line":361},[358,1544,459],{"class":364},[358,1546,462],{"class":379},[358,1548,465],{"class":375},[358,1550,468],{"class":379},[358,1552,471],{"class":364},[358,1554,474],{"class":379},[358,1556,477],{"class":399},[358,1558,480],{"class":379},[358,1560,1561],{"class":360,"line":383},[358,1562,486],{"emptyLinePlaceholder":485},[358,1564,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585],{"class":360,"line":411},[358,1566,365],{"class":364},[358,1568,494],{"class":493},[358,1570,462],{"class":379},[358,1572,499],{"class":375},[358,1574,502],{"class":379},[358,1576,505],{"class":375},[358,1578,445],{"class":379},[358,1580,510],{"class":379},[358,1582,465],{"class":371},[358,1584,376],{"class":375},[358,1586,380],{"class":379},[358,1588,1589,1591,1593,1595,1597,1599],{"class":360,"line":422},[358,1590,521],{"class":386},[358,1592,390],{"class":379},[358,1594,474],{"class":379},[358,1596,528],{"class":399},[358,1598,396],{"class":379},[358,1600,408],{"class":379},[358,1602,1603,1606,1608],{"class":360,"line":436},[358,1604,1605],{"class":386},"  sampling",[358,1607,390],{"class":379},[358,1609,419],{"class":379},[358,1611,1612,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633],{"class":360,"line":442},[358,1613,1614],{"class":386},"    rates",[358,1616,390],{"class":379},[358,1618,462],{"class":379},[358,1620,1454],{"class":386},[358,1622,390],{"class":379},[358,1624,1459],{"class":1007},[358,1626,502],{"class":379},[358,1628,1464],{"class":386},[358,1630,390],{"class":379},[358,1632,1469],{"class":1007},[358,1634,611],{"class":379},[358,1636,1637,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666],{"class":360,"line":1133},[358,1638,1639],{"class":386},"    keep",[358,1641,390],{"class":379},[358,1643,393],{"class":375},[358,1645,1484],{"class":379},[358,1647,1487],{"class":386},[358,1649,390],{"class":379},[358,1651,1492],{"class":1007},[358,1653,1495],{"class":379},[358,1655,462],{"class":379},[358,1657,1500],{"class":386},[358,1659,390],{"class":379},[358,1661,1505],{"class":1007},[358,1663,468],{"class":379},[358,1665,405],{"class":375},[358,1667,408],{"class":379},[358,1669,1670],{"class":360,"line":1434},[358,1671,439],{"class":379},[358,1673,1674,1676],{"class":360,"line":1444},[358,1675,445],{"class":379},[358,1677,448],{"class":375},[348,1679,1681],{"className":350,"code":1680,"filename":553,"language":353,"meta":354,"style":354},"import { initLogger } from 'evlog'\n\ninitLogger({\n  env: { service: 'my-app' },\n  sampling: {\n    rates: { info: 10, debug: 0 },\n    keep: [{ status: 400 }, { duration: 1000 }],\n  },\n})\n",[332,1682,1683,1701,1705,1713,1733,1741,1765,1797,1801],{"__ignoreMap":354},[358,1684,1685,1687,1689,1691,1693,1695,1697,1699],{"class":360,"line":361},[358,1686,459],{"class":364},[358,1688,462],{"class":379},[358,1690,564],{"class":375},[358,1692,468],{"class":379},[358,1694,471],{"class":364},[358,1696,474],{"class":379},[358,1698,573],{"class":399},[358,1700,480],{"class":379},[358,1702,1703],{"class":360,"line":383},[358,1704,486],{"emptyLinePlaceholder":485},[358,1706,1707,1709,1711],{"class":360,"line":411},[358,1708,584],{"class":371},[358,1710,376],{"class":375},[358,1712,380],{"class":379},[358,1714,1715,1717,1719,1721,1723,1725,1727,1729,1731],{"class":360,"line":422},[358,1716,593],{"class":386},[358,1718,390],{"class":379},[358,1720,462],{"class":379},[358,1722,600],{"class":386},[358,1724,390],{"class":379},[358,1726,474],{"class":379},[358,1728,528],{"class":399},[358,1730,396],{"class":379},[358,1732,611],{"class":379},[358,1734,1735,1737,1739],{"class":360,"line":436},[358,1736,1605],{"class":386},[358,1738,390],{"class":379},[358,1740,419],{"class":379},[358,1742,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763],{"class":360,"line":442},[358,1744,1614],{"class":386},[358,1746,390],{"class":379},[358,1748,462],{"class":379},[358,1750,1454],{"class":386},[358,1752,390],{"class":379},[358,1754,1459],{"class":1007},[358,1756,502],{"class":379},[358,1758,1464],{"class":386},[358,1760,390],{"class":379},[358,1762,1469],{"class":1007},[358,1764,611],{"class":379},[358,1766,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795],{"class":360,"line":1133},[358,1768,1639],{"class":386},[358,1770,390],{"class":379},[358,1772,393],{"class":375},[358,1774,1484],{"class":379},[358,1776,1487],{"class":386},[358,1778,390],{"class":379},[358,1780,1492],{"class":1007},[358,1782,1495],{"class":379},[358,1784,462],{"class":379},[358,1786,1500],{"class":386},[358,1788,390],{"class":379},[358,1790,1505],{"class":1007},[358,1792,468],{"class":379},[358,1794,405],{"class":375},[358,1796,408],{"class":379},[358,1798,1799],{"class":360,"line":1434},[358,1800,439],{"class":379},[358,1802,1803,1805],{"class":360,"line":1444},[358,1804,445],{"class":379},[358,1806,448],{"class":375},[337,1808,1810],{"id":1809},"before-after","Before \u002F After",[314,1812,1813],{},"Without redaction, sensitive data lands in your logs and drains:",[348,1815,1819],{"className":1816,"code":1817,"language":1818,"meta":354,"style":354},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"user\": { \"email\": \"alice@example.com\", \"ip\": \"192.168.1.42\" },\n  \"payment\": { \"card\": \"4111111111111111\" },\n  \"auth\": \"Bearer sk_live_abc123def456\"\n}\n","json",[332,1820,1821,1825,1875,1905,1924],{"__ignoreMap":354},[358,1822,1823],{"class":360,"line":361},[358,1824,380],{"class":379},[358,1826,1827,1830,1833,1836,1838,1840,1843,1845,1847,1849,1851,1853,1855,1857,1859,1862,1864,1866,1868,1871,1873],{"class":360,"line":383},[358,1828,1829],{"class":379},"  \"",[358,1831,1832],{"class":493},"user",[358,1834,1835],{"class":379},"\"",[358,1837,390],{"class":379},[358,1839,462],{"class":379},[358,1841,1842],{"class":379}," \"",[358,1844,696],{"class":827},[358,1846,1835],{"class":379},[358,1848,390],{"class":379},[358,1850,1842],{"class":379},[358,1852,701],{"class":399},[358,1854,1835],{"class":379},[358,1856,502],{"class":379},[358,1858,1842],{"class":379},[358,1860,1861],{"class":827},"ip",[358,1863,1835],{"class":379},[358,1865,390],{"class":379},[358,1867,1842],{"class":379},[358,1869,1870],{"class":399},"192.168.1.42",[358,1872,1835],{"class":379},[358,1874,611],{"class":379},[358,1876,1877,1879,1882,1884,1886,1888,1890,1893,1895,1897,1899,1901,1903],{"class":360,"line":411},[358,1878,1829],{"class":379},[358,1880,1881],{"class":493},"payment",[358,1883,1835],{"class":379},[358,1885,390],{"class":379},[358,1887,462],{"class":379},[358,1889,1842],{"class":379},[358,1891,1892],{"class":827},"card",[358,1894,1835],{"class":379},[358,1896,390],{"class":379},[358,1898,1842],{"class":379},[358,1900,684],{"class":399},[358,1902,1835],{"class":379},[358,1904,611],{"class":379},[358,1906,1907,1909,1912,1914,1916,1918,1921],{"class":360,"line":422},[358,1908,1829],{"class":379},[358,1910,1911],{"class":493},"auth",[358,1913,1835],{"class":379},[358,1915,390],{"class":379},[358,1917,1842],{"class":379},[358,1919,1920],{"class":399},"Bearer sk_live_abc123def456",[358,1922,1923],{"class":379},"\"\n",[358,1925,1926],{"class":360,"line":436},[358,1927,878],{"class":379},[314,1929,1930,1931,390],{},"With ",[332,1932,633],{},[348,1934,1936],{"className":1816,"code":1935,"language":1818,"meta":354,"style":354},"{\n  \"user\": { \"email\": \"a***@***.com\", \"ip\": \"***.***.***.42\" },\n  \"payment\": { \"card\": \"****1111\" },\n  \"auth\": \"Bearer ***\"\n}\n",[332,1937,1938,1942,1987,2015,2031],{"__ignoreMap":354},[358,1939,1940],{"class":360,"line":361},[358,1941,380],{"class":379},[358,1943,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1983,1985],{"class":360,"line":383},[358,1945,1829],{"class":379},[358,1947,1832],{"class":493},[358,1949,1835],{"class":379},[358,1951,390],{"class":379},[358,1953,462],{"class":379},[358,1955,1842],{"class":379},[358,1957,696],{"class":827},[358,1959,1835],{"class":379},[358,1961,390],{"class":379},[358,1963,1842],{"class":379},[358,1965,706],{"class":399},[358,1967,1835],{"class":379},[358,1969,502],{"class":379},[358,1971,1842],{"class":379},[358,1973,1861],{"class":827},[358,1975,1835],{"class":379},[358,1977,390],{"class":379},[358,1979,1842],{"class":379},[358,1981,1982],{"class":399},"***.***.***.42",[358,1984,1835],{"class":379},[358,1986,611],{"class":379},[358,1988,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013],{"class":360,"line":411},[358,1990,1829],{"class":379},[358,1992,1881],{"class":493},[358,1994,1835],{"class":379},[358,1996,390],{"class":379},[358,1998,462],{"class":379},[358,2000,1842],{"class":379},[358,2002,1892],{"class":827},[358,2004,1835],{"class":379},[358,2006,390],{"class":379},[358,2008,1842],{"class":379},[358,2010,689],{"class":399},[358,2012,1835],{"class":379},[358,2014,611],{"class":379},[358,2016,2017,2019,2021,2023,2025,2027,2029],{"class":360,"line":422},[358,2018,1829],{"class":379},[358,2020,1911],{"class":493},[358,2022,1835],{"class":379},[358,2024,390],{"class":379},[358,2026,1842],{"class":379},[358,2028,774],{"class":399},[358,2030,1923],{"class":379},[358,2032,2033],{"class":360,"line":436},[358,2034,878],{"class":379},[314,2036,2037],{},"Same debugging context, no PII in your Axiom\u002FDatadog\u002FSentry.",[337,2039,2041],{"id":2040},"next-steps","Next Steps",[2043,2044,2045,2051,2056],"ul",{},[1298,2046,2047,2050],{},[2048,2049,106],"a",{"href":107}," - Security guidelines and production checklist",[1298,2052,2053,2055],{},[2048,2054,96],{"href":97}," - Control log volume in production",[1298,2057,2058,2060],{},[2048,2059,91],{"href":92}," - Full configuration reference",[2062,2063,2064],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":354,"searchDepth":383,"depth":383,"links":2066},[2067,2068,2069,2075,2076,2077,2078,2079],{"id":339,"depth":383,"text":340},{"id":637,"depth":383,"text":638},{"id":806,"depth":383,"text":91,"children":2070},[2071,2072,2073,2074],{"id":810,"depth":411,"text":811},{"id":895,"depth":411,"text":896},{"id":958,"depth":411,"text":959},{"id":1051,"depth":411,"text":1052},{"id":1138,"depth":383,"text":1139},{"id":1289,"depth":383,"text":1290},{"id":1339,"depth":383,"text":1340},{"id":1809,"depth":383,"text":1810},{"id":2040,"depth":383,"text":2041},"Automatically scrub PII from wide events before console output and drains. Built-in smart masking for credit cards, emails, IPs, phone numbers, JWTs, and more.","md",[2083,2086],{"label":106,"icon":79,"to":107,"color":2084,"variant":2085},"neutral","subtle",{"label":91,"icon":94,"to":92,"color":2084,"variant":2085},{},{"icon":123},{"title":120,"description":2080},"M1JCokTraxJu5E5CmDGzv7o9BSdLtKzzElAzqwddNaw",[2092,2094],{"title":115,"path":116,"stem":117,"description":2093,"icon":118,"children":-1},"Build-time optimizations for any Vite-based framework. Auto-init, debug stripping, source location injection, and optional auto-imports.",{"title":41,"path":130,"stem":131,"description":2095,"icon":132,"children":-1},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.",1777667167643]