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