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