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