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