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