[{"data":1,"prerenderedAt":3572},["ShallowReactive",2],{"navigation_docs":3,"-learn-simple-logging":505,"-learn-simple-logging-surround":3567},[4,30,80,123,288,420,475],{"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},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"children":127,"page":29},"Integrate","\u002Fintegrate","4.integrate",[128,132,200],{"title":36,"path":129,"stem":130,"icon":131},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,140,180],{"title":36,"path":138,"stem":139,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":141,"path":142,"stem":143,"children":144,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[145,150,155,160,165,170,175],{"title":146,"path":147,"stem":148,"icon":149},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":151,"path":152,"stem":153,"icon":154},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","4.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"icon":179},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","4.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":181,"path":182,"stem":183,"children":184,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[185,190,195],{"title":186,"path":187,"stem":188,"icon":189},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":191,"path":192,"stem":193,"icon":194},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":196,"path":197,"stem":198,"icon":199},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[205,209,214,219,224,229,234,239,244,249,254,259,264,269,273,278,283],{"title":36,"path":206,"stem":207,"icon":208},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":210,"path":211,"stem":212,"icon":213},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":215,"path":216,"stem":217,"icon":218},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":220,"path":221,"stem":222,"icon":223},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":225,"path":226,"stem":227,"icon":228},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":230,"path":231,"stem":232,"icon":233},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":235,"path":236,"stem":237,"icon":238},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":240,"path":241,"stem":242,"icon":243},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":245,"path":246,"stem":247,"icon":248},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":250,"path":251,"stem":252,"icon":253},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":255,"path":256,"stem":257,"icon":258},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":260,"path":261,"stem":262,"icon":263},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":265,"path":266,"stem":267,"icon":268},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":270,"path":271,"stem":272,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":274,"path":275,"stem":276,"icon":277},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":279,"path":280,"stem":281,"icon":282},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":284,"path":285,"stem":286,"icon":287},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":289,"path":290,"stem":291,"children":292,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[293,296,301,330,357,389,410,415],{"title":36,"path":294,"stem":295,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":297,"path":298,"stem":299,"icon":300},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":302,"icon":303,"path":304,"stem":305,"children":306,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[307,310,315,320,325],{"title":36,"path":308,"stem":309,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":311,"path":312,"stem":313,"icon":314},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":316,"path":317,"stem":318,"icon":319},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":321,"path":322,"stem":323,"icon":324},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":326,"path":327,"stem":328,"icon":329},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":331,"icon":332,"path":333,"stem":334,"children":335,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[336,339,344,349,353],{"title":36,"path":337,"stem":338,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":340,"path":341,"stem":342,"icon":343},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":345,"path":346,"stem":347,"icon":348},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":350,"path":351,"stem":352,"icon":300},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":354,"path":355,"stem":356,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":358,"icon":359,"path":360,"stem":361,"children":362,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[363,366,371,376,381,385],{"title":36,"path":364,"stem":365,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":367,"path":368,"stem":369,"icon":370},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":372,"path":373,"stem":374,"icon":375},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":377,"path":378,"stem":379,"icon":380},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":382,"path":383,"stem":384,"icon":359},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":386,"path":387,"stem":388,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":326,"icon":107,"path":390,"stem":391,"children":392,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[393,396,401,406],{"title":36,"path":394,"stem":395,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":397,"path":398,"stem":399,"icon":400},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":402,"path":403,"stem":404,"icon":405},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":407,"path":408,"stem":409,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":411,"path":412,"stem":413,"icon":414},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":416,"path":417,"stem":418,"icon":419},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":421,"path":422,"stem":423,"children":424,"page":29},"Extend","\u002Fextend","6.extend",[425,429,434,439,444,448,452,456,460,465,470],{"title":36,"path":426,"stem":427,"icon":428},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":430,"path":431,"stem":432,"icon":433},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":435,"path":436,"stem":437,"icon":438},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":440,"path":441,"stem":442,"icon":443},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":386,"path":445,"stem":446,"icon":447},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":449,"path":450,"stem":451,"icon":428},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":453,"path":454,"stem":455,"icon":414},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":457,"path":458,"stem":459,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":461,"path":462,"stem":463,"icon":464},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":466,"path":467,"stem":468,"icon":469},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":471,"path":472,"stem":473,"icon":474},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":407,"path":476,"stem":477,"children":478,"page":29},"\u002Freference","7.reference",[479,484,487,492,496,501],{"title":480,"path":481,"stem":482,"icon":483},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":354,"path":485,"stem":486,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":488,"path":489,"stem":490,"icon":491},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":493,"path":494,"stem":495,"icon":359},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":497,"path":498,"stem":499,"icon":500},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":502,"path":503,"stem":504,"icon":414},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":506,"title":41,"body":507,"description":3557,"extension":3558,"links":3559,"meta":3563,"navigation":3564,"path":42,"seo":3565,"stem":43,"__hash__":3566},"docs\u002F2.learn\u002F1.simple-logging.md",{"type":508,"value":509,"toc":3540},"minimark",[510,523,537,549,553,556,696,706,710,715,718,860,910,914,917,1081,1138,1148,1152,1231,1245,1249,1253,1399,1403,1544,1548,1757,1761,1768,1927,1931,1942,2758,2761,2972,2981,2988,2992,3007,3475,3483,3487,3536],[511,512,513,514,518,519,522],"p",{},"The ",[515,516,517],"code",{},"log"," API is evlog's general-purpose logger. Use it the way you'd use pino, consola, or ",[515,520,521],{},"console.log"," — every call emits a structured event through the same drain pipeline as wide events. The two modes coexist; neither is an upgrade of the other.",[524,525,528,529,533,534,536],"callout",{"color":526,"icon":527},"neutral","i-lucide-globe","Looking for the same API in CLIs, libraries, jobs, and edge? Start with ",[530,531,532],"a",{"href":271},"Standalone TypeScript"," and ",[530,535,265],{"href":266},".",[524,538,540,541,543,544,548],{"color":539,"icon":414},"info","In Nuxt, ",[515,542,517],{}," is ",[545,546,547],"strong",{},"auto-imported",". No import statement needed.",[550,551,397],"h2",{"id":552},"setup",[511,554,555],{},"For standalone projects (non-Nuxt), initialize once at startup:",[557,558,564],"pre",{"className":559,"code":560,"filename":561,"language":562,"meta":563,"style":563},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initLogger, log } from 'evlog'\n\ninitLogger({\n  env: { service: 'my-app' },\n})\n\nlog.info('app', 'Server started')\n","src\u002Findex.ts","typescript","",[515,565,566,605,612,625,653,662,667],{"__ignoreMap":563},[567,568,571,575,579,583,586,589,592,595,598,602],"span",{"class":569,"line":570},"line",1,[567,572,574],{"class":573},"s7zQu","import",[567,576,578],{"class":577},"sMK4o"," {",[567,580,582],{"class":581},"sTEyZ"," initLogger",[567,584,585],{"class":577},",",[567,587,588],{"class":581}," log",[567,590,591],{"class":577}," }",[567,593,594],{"class":573}," from",[567,596,597],{"class":577}," '",[567,599,601],{"class":600},"sfazB","evlog",[567,603,604],{"class":577},"'\n",[567,606,608],{"class":569,"line":607},2,[567,609,611],{"emptyLinePlaceholder":610},true,"\n",[567,613,615,619,622],{"class":569,"line":614},3,[567,616,618],{"class":617},"s2Zo4","initLogger",[567,620,621],{"class":581},"(",[567,623,624],{"class":577},"{\n",[567,626,628,632,635,637,640,642,644,647,650],{"class":569,"line":627},4,[567,629,631],{"class":630},"swJcz","  env",[567,633,634],{"class":577},":",[567,636,578],{"class":577},[567,638,639],{"class":630}," service",[567,641,634],{"class":577},[567,643,597],{"class":577},[567,645,646],{"class":600},"my-app",[567,648,649],{"class":577},"'",[567,651,652],{"class":577}," },\n",[567,654,656,659],{"class":569,"line":655},5,[567,657,658],{"class":577},"}",[567,660,661],{"class":581},")\n",[567,663,665],{"class":569,"line":664},6,[567,666,611],{"emptyLinePlaceholder":610},[567,668,670,672,674,676,678,680,683,685,687,689,692,694],{"class":569,"line":669},7,[567,671,517],{"class":581},[567,673,536],{"class":577},[567,675,539],{"class":617},[567,677,621],{"class":581},[567,679,649],{"class":577},[567,681,682],{"class":600},"app",[567,684,649],{"class":577},[567,686,585],{"class":577},[567,688,597],{"class":577},[567,690,691],{"class":600},"Server started",[567,693,649],{"class":577},[567,695,661],{"class":581},[524,697,698,701,702,705],{"color":539,"icon":13},[515,699,700],{},"env.service"," defaults to ",[515,703,704],{},"'app'"," if not specified. Only set it if you want a custom service name.",[550,707,709],{"id":708},"two-call-styles","Two Call Styles",[711,712,714],"h3",{"id":713},"tagged-logs","Tagged Logs",[511,716,717],{},"Pass a tag and a message for quick, readable output:",[557,719,721],{"className":559,"code":720,"filename":561,"language":562,"meta":563,"style":563},"import { log } from 'evlog'\n\nlog.info('auth', 'User logged in')\nlog.warn('cache', 'Cache miss for key user:42')\nlog.error('payment', 'Stripe webhook failed')\nlog.debug('router', 'Matched route \u002Fapi\u002Fcheckout')\n",[515,722,723,741,745,773,802,831],{"__ignoreMap":563},[567,724,725,727,729,731,733,735,737,739],{"class":569,"line":570},[567,726,574],{"class":573},[567,728,578],{"class":577},[567,730,588],{"class":581},[567,732,591],{"class":577},[567,734,594],{"class":573},[567,736,597],{"class":577},[567,738,601],{"class":600},[567,740,604],{"class":577},[567,742,743],{"class":569,"line":607},[567,744,611],{"emptyLinePlaceholder":610},[567,746,747,749,751,753,755,757,760,762,764,766,769,771],{"class":569,"line":614},[567,748,517],{"class":581},[567,750,536],{"class":577},[567,752,539],{"class":617},[567,754,621],{"class":581},[567,756,649],{"class":577},[567,758,759],{"class":600},"auth",[567,761,649],{"class":577},[567,763,585],{"class":577},[567,765,597],{"class":577},[567,767,768],{"class":600},"User logged in",[567,770,649],{"class":577},[567,772,661],{"class":581},[567,774,775,777,779,782,784,786,789,791,793,795,798,800],{"class":569,"line":627},[567,776,517],{"class":581},[567,778,536],{"class":577},[567,780,781],{"class":617},"warn",[567,783,621],{"class":581},[567,785,649],{"class":577},[567,787,788],{"class":600},"cache",[567,790,649],{"class":577},[567,792,585],{"class":577},[567,794,597],{"class":577},[567,796,797],{"class":600},"Cache miss for key user:42",[567,799,649],{"class":577},[567,801,661],{"class":581},[567,803,804,806,808,811,813,815,818,820,822,824,827,829],{"class":569,"line":655},[567,805,517],{"class":581},[567,807,536],{"class":577},[567,809,810],{"class":617},"error",[567,812,621],{"class":581},[567,814,649],{"class":577},[567,816,817],{"class":600},"payment",[567,819,649],{"class":577},[567,821,585],{"class":577},[567,823,597],{"class":577},[567,825,826],{"class":600},"Stripe webhook failed",[567,828,649],{"class":577},[567,830,661],{"class":581},[567,832,833,835,837,840,842,844,847,849,851,853,856,858],{"class":569,"line":664},[567,834,517],{"class":581},[567,836,536],{"class":577},[567,838,839],{"class":617},"debug",[567,841,621],{"class":581},[567,843,649],{"class":577},[567,845,846],{"class":600},"router",[567,848,649],{"class":577},[567,850,585],{"class":577},[567,852,597],{"class":577},[567,854,855],{"class":600},"Matched route \u002Fapi\u002Fcheckout",[567,857,649],{"class":577},[567,859,661],{"class":581},[557,861,866],{"className":862,"code":863,"filename":864,"language":865,"meta":563,"style":563},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","10:23:45.612 [auth] User logged in\n10:23:45.613 [cache] Cache miss for key user:42\n10:23:45.614 ERROR [payment] Stripe webhook failed\n10:23:45.615 [router] Matched route \u002Fapi\u002Fcheckout\n","Output (Pretty)","bash",[515,867,868,877,891,902],{"__ignoreMap":563},[567,869,870,874],{"class":569,"line":570},[567,871,873],{"class":872},"sBMFI","10:23:45.612",[567,875,876],{"class":581}," [auth] User logged in\n",[567,878,879,882,885,888],{"class":569,"line":607},[567,880,881],{"class":872},"10:23:45.613",[567,883,884],{"class":581}," [cache] Cache miss ",[567,886,887],{"class":573},"for",[567,889,890],{"class":581}," key user:42\n",[567,892,893,896,899],{"class":569,"line":614},[567,894,895],{"class":872},"10:23:45.614",[567,897,898],{"class":600}," ERROR",[567,900,901],{"class":581}," [payment] Stripe webhook failed\n",[567,903,904,907],{"class":569,"line":627},[567,905,906],{"class":872},"10:23:45.615",[567,908,909],{"class":581}," [router] Matched route \u002Fapi\u002Fcheckout\n",[711,911,913],{"id":912},"structured-events","Structured Events",[511,915,916],{},"Pass an object for rich, queryable events that flow through the drain pipeline:",[557,918,920],{"className":559,"code":919,"filename":561,"language":562,"meta":563,"style":563},"import { log } from 'evlog'\n\nlog.info({ action: 'user_login', userId: 42, method: 'oauth', provider: 'github' })\nlog.error({ action: 'sync_failed', source: 'postgres', target: 's3', error: 'connection_timeout' })\n",[515,921,922,940,944,1012],{"__ignoreMap":563},[567,923,924,926,928,930,932,934,936,938],{"class":569,"line":570},[567,925,574],{"class":573},[567,927,578],{"class":577},[567,929,588],{"class":581},[567,931,591],{"class":577},[567,933,594],{"class":573},[567,935,597],{"class":577},[567,937,601],{"class":600},[567,939,604],{"class":577},[567,941,942],{"class":569,"line":607},[567,943,611],{"emptyLinePlaceholder":610},[567,945,946,948,950,952,954,957,960,962,964,967,969,971,974,976,980,982,985,987,989,992,994,996,999,1001,1003,1006,1008,1010],{"class":569,"line":614},[567,947,517],{"class":581},[567,949,536],{"class":577},[567,951,539],{"class":617},[567,953,621],{"class":581},[567,955,956],{"class":577},"{",[567,958,959],{"class":630}," action",[567,961,634],{"class":577},[567,963,597],{"class":577},[567,965,966],{"class":600},"user_login",[567,968,649],{"class":577},[567,970,585],{"class":577},[567,972,973],{"class":630}," userId",[567,975,634],{"class":577},[567,977,979],{"class":978},"sbssI"," 42",[567,981,585],{"class":577},[567,983,984],{"class":630}," method",[567,986,634],{"class":577},[567,988,597],{"class":577},[567,990,991],{"class":600},"oauth",[567,993,649],{"class":577},[567,995,585],{"class":577},[567,997,998],{"class":630}," provider",[567,1000,634],{"class":577},[567,1002,597],{"class":577},[567,1004,1005],{"class":600},"github",[567,1007,649],{"class":577},[567,1009,591],{"class":577},[567,1011,661],{"class":581},[567,1013,1014,1016,1018,1020,1022,1024,1026,1028,1030,1033,1035,1037,1040,1042,1044,1047,1049,1051,1054,1056,1058,1061,1063,1065,1068,1070,1072,1075,1077,1079],{"class":569,"line":627},[567,1015,517],{"class":581},[567,1017,536],{"class":577},[567,1019,810],{"class":617},[567,1021,621],{"class":581},[567,1023,956],{"class":577},[567,1025,959],{"class":630},[567,1027,634],{"class":577},[567,1029,597],{"class":577},[567,1031,1032],{"class":600},"sync_failed",[567,1034,649],{"class":577},[567,1036,585],{"class":577},[567,1038,1039],{"class":630}," source",[567,1041,634],{"class":577},[567,1043,597],{"class":577},[567,1045,1046],{"class":600},"postgres",[567,1048,649],{"class":577},[567,1050,585],{"class":577},[567,1052,1053],{"class":630}," target",[567,1055,634],{"class":577},[567,1057,597],{"class":577},[567,1059,1060],{"class":600},"s3",[567,1062,649],{"class":577},[567,1064,585],{"class":577},[567,1066,1067],{"class":630}," error",[567,1069,634],{"class":577},[567,1071,597],{"class":577},[567,1073,1074],{"class":600},"connection_timeout",[567,1076,649],{"class":577},[567,1078,591],{"class":577},[567,1080,661],{"class":581},[557,1082,1084],{"className":862,"code":1083,"filename":864,"language":865,"meta":563,"style":563},"10:23:45.612 INFO [my-app]\n  ├─ action: user_login\n  ├─ userId: 42\n  ├─ method: oauth\n  └─ provider: github\n",[515,1085,1086,1096,1107,1117,1127],{"__ignoreMap":563},[567,1087,1088,1090,1093],{"class":569,"line":570},[567,1089,873],{"class":872},[567,1091,1092],{"class":600}," INFO",[567,1094,1095],{"class":581}," [my-app]\n",[567,1097,1098,1101,1104],{"class":569,"line":607},[567,1099,1100],{"class":872},"  ├─",[567,1102,1103],{"class":600}," action:",[567,1105,1106],{"class":600}," user_login\n",[567,1108,1109,1111,1114],{"class":569,"line":614},[567,1110,1100],{"class":872},[567,1112,1113],{"class":600}," userId:",[567,1115,1116],{"class":978}," 42\n",[567,1118,1119,1121,1124],{"class":569,"line":627},[567,1120,1100],{"class":872},[567,1122,1123],{"class":600}," method:",[567,1125,1126],{"class":600}," oauth\n",[567,1128,1129,1132,1135],{"class":569,"line":655},[567,1130,1131],{"class":872},"  └─",[567,1133,1134],{"class":600}," provider:",[567,1136,1137],{"class":600}," github\n",[524,1139,1140,1143,1144,1147],{"color":539,"icon":13},[545,1141,1142],{},"Tagged logs"," are optimized for console readability. ",[545,1145,1146],{},"Structured events"," (object form) produce full wide events that flow through the drain pipeline to external services.",[550,1149,1151],{"id":1150},"log-levels","Log Levels",[1153,1154,1155,1171],"table",{},[1156,1157,1158],"thead",{},[1159,1160,1161,1165,1168],"tr",{},[1162,1163,1164],"th",{},"Level",[1162,1166,1167],{},"Method",[1162,1169,1170],{},"When to use",[1172,1173,1174,1189,1203,1217],"tbody",{},[1159,1175,1176,1181,1186],{},[1177,1178,1179],"td",{},[515,1180,539],{},[1177,1182,1183],{},[515,1184,1185],{},"log.info()",[1177,1187,1188],{},"Normal operations: startup, shutdown, successful actions",[1159,1190,1191,1195,1200],{},[1177,1192,1193],{},[515,1194,781],{},[1177,1196,1197],{},[515,1198,1199],{},"log.warn()",[1177,1201,1202],{},"Unexpected but recoverable situations: cache miss, retry, deprecation",[1159,1204,1205,1209,1214],{},[1177,1206,1207],{},[515,1208,810],{},[1177,1210,1211],{},[515,1212,1213],{},"log.error()",[1177,1215,1216],{},"Failures that need attention: API errors, timeouts, invalid state",[1159,1218,1219,1223,1228],{},[1177,1220,1221],{},[515,1222,839],{},[1177,1224,1225],{},[515,1226,1227],{},"log.debug()",[1177,1229,1230],{},"Development-only details: SQL queries, intermediate state, routing",[524,1232,1235,1237,1238,1240,1241,1244],{"color":1233,"icon":1234},"warning","i-lucide-lightbulb",[515,1236,1227],{}," calls can be stripped from production builds using the ",[530,1239,488],{"href":489}," or the Nuxt module's ",[515,1242,1243],{},"strip"," option.",[550,1246,1248],{"id":1247},"common-patterns","Common Patterns",[711,1250,1252],{"id":1251},"application-lifecycle","Application Lifecycle",[557,1254,1256],{"className":559,"code":1255,"filename":561,"language":562,"meta":563,"style":563},"import { log } from 'evlog'\n\nlog.info('app', 'Starting server on port 3000')\nlog.info({ action: 'db_connected', host: 'localhost', database: 'mydb', pool: 10 })\nlog.info('app', 'Ready to accept connections')\n",[515,1257,1258,1276,1280,1307,1372],{"__ignoreMap":563},[567,1259,1260,1262,1264,1266,1268,1270,1272,1274],{"class":569,"line":570},[567,1261,574],{"class":573},[567,1263,578],{"class":577},[567,1265,588],{"class":581},[567,1267,591],{"class":577},[567,1269,594],{"class":573},[567,1271,597],{"class":577},[567,1273,601],{"class":600},[567,1275,604],{"class":577},[567,1277,1278],{"class":569,"line":607},[567,1279,611],{"emptyLinePlaceholder":610},[567,1281,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1303,1305],{"class":569,"line":614},[567,1283,517],{"class":581},[567,1285,536],{"class":577},[567,1287,539],{"class":617},[567,1289,621],{"class":581},[567,1291,649],{"class":577},[567,1293,682],{"class":600},[567,1295,649],{"class":577},[567,1297,585],{"class":577},[567,1299,597],{"class":577},[567,1301,1302],{"class":600},"Starting server on port 3000",[567,1304,649],{"class":577},[567,1306,661],{"class":581},[567,1308,1309,1311,1313,1315,1317,1319,1321,1323,1325,1328,1330,1332,1335,1337,1339,1342,1344,1346,1349,1351,1353,1356,1358,1360,1363,1365,1368,1370],{"class":569,"line":627},[567,1310,517],{"class":581},[567,1312,536],{"class":577},[567,1314,539],{"class":617},[567,1316,621],{"class":581},[567,1318,956],{"class":577},[567,1320,959],{"class":630},[567,1322,634],{"class":577},[567,1324,597],{"class":577},[567,1326,1327],{"class":600},"db_connected",[567,1329,649],{"class":577},[567,1331,585],{"class":577},[567,1333,1334],{"class":630}," host",[567,1336,634],{"class":577},[567,1338,597],{"class":577},[567,1340,1341],{"class":600},"localhost",[567,1343,649],{"class":577},[567,1345,585],{"class":577},[567,1347,1348],{"class":630}," database",[567,1350,634],{"class":577},[567,1352,597],{"class":577},[567,1354,1355],{"class":600},"mydb",[567,1357,649],{"class":577},[567,1359,585],{"class":577},[567,1361,1362],{"class":630}," pool",[567,1364,634],{"class":577},[567,1366,1367],{"class":978}," 10",[567,1369,591],{"class":577},[567,1371,661],{"class":581},[567,1373,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1395,1397],{"class":569,"line":655},[567,1375,517],{"class":581},[567,1377,536],{"class":577},[567,1379,539],{"class":617},[567,1381,621],{"class":581},[567,1383,649],{"class":577},[567,1385,682],{"class":600},[567,1387,649],{"class":577},[567,1389,585],{"class":577},[567,1391,597],{"class":577},[567,1393,1394],{"class":600},"Ready to accept connections",[567,1396,649],{"class":577},[567,1398,661],{"class":581},[711,1400,1402],{"id":1401},"background-tasks","Background Tasks",[557,1404,1407],{"className":559,"code":1405,"filename":1406,"language":562,"meta":563,"style":563},"import { log } from 'evlog'\n\nlog.info({ action: 'cron_started', job: 'cleanup', schedule: '0 *\u002F6 * * *' })\nlog.info({ action: 'cron_completed', job: 'cleanup', deleted: 42, duration: 1200 })\n","src\u002Fjobs\u002Fcleanup.ts",[515,1408,1409,1427,1431,1486],{"__ignoreMap":563},[567,1410,1411,1413,1415,1417,1419,1421,1423,1425],{"class":569,"line":570},[567,1412,574],{"class":573},[567,1414,578],{"class":577},[567,1416,588],{"class":581},[567,1418,591],{"class":577},[567,1420,594],{"class":573},[567,1422,597],{"class":577},[567,1424,601],{"class":600},[567,1426,604],{"class":577},[567,1428,1429],{"class":569,"line":607},[567,1430,611],{"emptyLinePlaceholder":610},[567,1432,1433,1435,1437,1439,1441,1443,1445,1447,1449,1452,1454,1456,1459,1461,1463,1466,1468,1470,1473,1475,1477,1480,1482,1484],{"class":569,"line":614},[567,1434,517],{"class":581},[567,1436,536],{"class":577},[567,1438,539],{"class":617},[567,1440,621],{"class":581},[567,1442,956],{"class":577},[567,1444,959],{"class":630},[567,1446,634],{"class":577},[567,1448,597],{"class":577},[567,1450,1451],{"class":600},"cron_started",[567,1453,649],{"class":577},[567,1455,585],{"class":577},[567,1457,1458],{"class":630}," job",[567,1460,634],{"class":577},[567,1462,597],{"class":577},[567,1464,1465],{"class":600},"cleanup",[567,1467,649],{"class":577},[567,1469,585],{"class":577},[567,1471,1472],{"class":630}," schedule",[567,1474,634],{"class":577},[567,1476,597],{"class":577},[567,1478,1479],{"class":600},"0 *\u002F6 * * *",[567,1481,649],{"class":577},[567,1483,591],{"class":577},[567,1485,661],{"class":581},[567,1487,1488,1490,1492,1494,1496,1498,1500,1502,1504,1507,1509,1511,1513,1515,1517,1519,1521,1523,1526,1528,1530,1532,1535,1537,1540,1542],{"class":569,"line":627},[567,1489,517],{"class":581},[567,1491,536],{"class":577},[567,1493,539],{"class":617},[567,1495,621],{"class":581},[567,1497,956],{"class":577},[567,1499,959],{"class":630},[567,1501,634],{"class":577},[567,1503,597],{"class":577},[567,1505,1506],{"class":600},"cron_completed",[567,1508,649],{"class":577},[567,1510,585],{"class":577},[567,1512,1458],{"class":630},[567,1514,634],{"class":577},[567,1516,597],{"class":577},[567,1518,1465],{"class":600},[567,1520,649],{"class":577},[567,1522,585],{"class":577},[567,1524,1525],{"class":630}," deleted",[567,1527,634],{"class":577},[567,1529,979],{"class":978},[567,1531,585],{"class":577},[567,1533,1534],{"class":630}," duration",[567,1536,634],{"class":577},[567,1538,1539],{"class":978}," 1200",[567,1541,591],{"class":577},[567,1543,661],{"class":581},[711,1545,1547],{"id":1546},"utility-functions","Utility Functions",[557,1549,1552],{"className":559,"code":1550,"filename":1551,"language":562,"meta":563,"style":563},"import { log } from 'evlog'\n\nfunction processWebhook(payload: WebhookPayload) {\n  log.info({ action: 'webhook_received', type: payload.type, source: payload.source })\n\n  if (!isValid(payload)) {\n    log.warn({ action: 'webhook_invalid', type: payload.type, reason: 'missing_signature' })\n    return\n  }\n}\n","src\u002Futils\u002Fwebhook.ts",[515,1553,1554,1572,1576,1602,1658,1662,1685,1739,1745,1751],{"__ignoreMap":563},[567,1555,1556,1558,1560,1562,1564,1566,1568,1570],{"class":569,"line":570},[567,1557,574],{"class":573},[567,1559,578],{"class":577},[567,1561,588],{"class":581},[567,1563,591],{"class":577},[567,1565,594],{"class":573},[567,1567,597],{"class":577},[567,1569,601],{"class":600},[567,1571,604],{"class":577},[567,1573,1574],{"class":569,"line":607},[567,1575,611],{"emptyLinePlaceholder":610},[567,1577,1578,1582,1585,1587,1591,1593,1596,1599],{"class":569,"line":614},[567,1579,1581],{"class":1580},"spNyl","function",[567,1583,1584],{"class":617}," processWebhook",[567,1586,621],{"class":577},[567,1588,1590],{"class":1589},"sHdIc","payload",[567,1592,634],{"class":577},[567,1594,1595],{"class":872}," WebhookPayload",[567,1597,1598],{"class":577},")",[567,1600,1601],{"class":577}," {\n",[567,1603,1604,1607,1609,1611,1613,1615,1617,1619,1621,1624,1626,1628,1631,1633,1636,1638,1641,1643,1645,1647,1649,1651,1654,1656],{"class":569,"line":627},[567,1605,1606],{"class":581},"  log",[567,1608,536],{"class":577},[567,1610,539],{"class":617},[567,1612,621],{"class":630},[567,1614,956],{"class":577},[567,1616,959],{"class":630},[567,1618,634],{"class":577},[567,1620,597],{"class":577},[567,1622,1623],{"class":600},"webhook_received",[567,1625,649],{"class":577},[567,1627,585],{"class":577},[567,1629,1630],{"class":630}," type",[567,1632,634],{"class":577},[567,1634,1635],{"class":581}," payload",[567,1637,536],{"class":577},[567,1639,1640],{"class":581},"type",[567,1642,585],{"class":577},[567,1644,1039],{"class":630},[567,1646,634],{"class":577},[567,1648,1635],{"class":581},[567,1650,536],{"class":577},[567,1652,1653],{"class":581},"source",[567,1655,591],{"class":577},[567,1657,661],{"class":630},[567,1659,1660],{"class":569,"line":655},[567,1661,611],{"emptyLinePlaceholder":610},[567,1663,1664,1667,1670,1673,1676,1678,1680,1683],{"class":569,"line":664},[567,1665,1666],{"class":573},"  if",[567,1668,1669],{"class":630}," (",[567,1671,1672],{"class":577},"!",[567,1674,1675],{"class":617},"isValid",[567,1677,621],{"class":630},[567,1679,1590],{"class":581},[567,1681,1682],{"class":630},")) ",[567,1684,624],{"class":577},[567,1686,1687,1690,1692,1694,1696,1698,1700,1702,1704,1707,1709,1711,1713,1715,1717,1719,1721,1723,1726,1728,1730,1733,1735,1737],{"class":569,"line":669},[567,1688,1689],{"class":581},"    log",[567,1691,536],{"class":577},[567,1693,781],{"class":617},[567,1695,621],{"class":630},[567,1697,956],{"class":577},[567,1699,959],{"class":630},[567,1701,634],{"class":577},[567,1703,597],{"class":577},[567,1705,1706],{"class":600},"webhook_invalid",[567,1708,649],{"class":577},[567,1710,585],{"class":577},[567,1712,1630],{"class":630},[567,1714,634],{"class":577},[567,1716,1635],{"class":581},[567,1718,536],{"class":577},[567,1720,1640],{"class":581},[567,1722,585],{"class":577},[567,1724,1725],{"class":630}," reason",[567,1727,634],{"class":577},[567,1729,597],{"class":577},[567,1731,1732],{"class":600},"missing_signature",[567,1734,649],{"class":577},[567,1736,591],{"class":577},[567,1738,661],{"class":630},[567,1740,1742],{"class":569,"line":1741},8,[567,1743,1744],{"class":573},"    return\n",[567,1746,1748],{"class":569,"line":1747},9,[567,1749,1750],{"class":577},"  }\n",[567,1752,1754],{"class":569,"line":1753},10,[567,1755,1756],{"class":577},"}\n",[550,1758,1760],{"id":1759},"drain-integration","Drain Integration",[511,1762,1763,1764,1767],{},"When using the object form, events are sent through the ",[530,1765,1766],{"href":138},"drain pipeline"," just like wide events:",[557,1769,1771],{"className":559,"code":1770,"filename":561,"language":562,"meta":563,"style":563},"import { initLogger, log } from 'evlog'\nimport { createAxiomDrain } from 'evlog\u002Faxiom'\n\ninitLogger({\n  env: { service: 'my-app' },\n  drain: createAxiomDrain(),\n})\n\nlog.info({ action: 'deploy', version: '1.2.3', region: 'us-east-1' })\n",[515,1772,1773,1795,1815,1819,1827,1847,1862,1868,1872],{"__ignoreMap":563},[567,1774,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793],{"class":569,"line":570},[567,1776,574],{"class":573},[567,1778,578],{"class":577},[567,1780,582],{"class":581},[567,1782,585],{"class":577},[567,1784,588],{"class":581},[567,1786,591],{"class":577},[567,1788,594],{"class":573},[567,1790,597],{"class":577},[567,1792,601],{"class":600},[567,1794,604],{"class":577},[567,1796,1797,1799,1801,1804,1806,1808,1810,1813],{"class":569,"line":607},[567,1798,574],{"class":573},[567,1800,578],{"class":577},[567,1802,1803],{"class":581}," createAxiomDrain",[567,1805,591],{"class":577},[567,1807,594],{"class":573},[567,1809,597],{"class":577},[567,1811,1812],{"class":600},"evlog\u002Faxiom",[567,1814,604],{"class":577},[567,1816,1817],{"class":569,"line":614},[567,1818,611],{"emptyLinePlaceholder":610},[567,1820,1821,1823,1825],{"class":569,"line":627},[567,1822,618],{"class":617},[567,1824,621],{"class":581},[567,1826,624],{"class":577},[567,1828,1829,1831,1833,1835,1837,1839,1841,1843,1845],{"class":569,"line":655},[567,1830,631],{"class":630},[567,1832,634],{"class":577},[567,1834,578],{"class":577},[567,1836,639],{"class":630},[567,1838,634],{"class":577},[567,1840,597],{"class":577},[567,1842,646],{"class":600},[567,1844,649],{"class":577},[567,1846,652],{"class":577},[567,1848,1849,1852,1854,1856,1859],{"class":569,"line":664},[567,1850,1851],{"class":630},"  drain",[567,1853,634],{"class":577},[567,1855,1803],{"class":617},[567,1857,1858],{"class":581},"()",[567,1860,1861],{"class":577},",\n",[567,1863,1864,1866],{"class":569,"line":669},[567,1865,658],{"class":577},[567,1867,661],{"class":581},[567,1869,1870],{"class":569,"line":1741},[567,1871,611],{"emptyLinePlaceholder":610},[567,1873,1874,1876,1878,1880,1882,1884,1886,1888,1890,1893,1895,1897,1900,1902,1904,1907,1909,1911,1914,1916,1918,1921,1923,1925],{"class":569,"line":1747},[567,1875,517],{"class":581},[567,1877,536],{"class":577},[567,1879,539],{"class":617},[567,1881,621],{"class":581},[567,1883,956],{"class":577},[567,1885,959],{"class":630},[567,1887,634],{"class":577},[567,1889,597],{"class":577},[567,1891,1892],{"class":600},"deploy",[567,1894,649],{"class":577},[567,1896,585],{"class":577},[567,1898,1899],{"class":630}," version",[567,1901,634],{"class":577},[567,1903,597],{"class":577},[567,1905,1906],{"class":600},"1.2.3",[567,1908,649],{"class":577},[567,1910,585],{"class":577},[567,1912,1913],{"class":630}," region",[567,1915,634],{"class":577},[567,1917,597],{"class":577},[567,1919,1920],{"class":600},"us-east-1",[567,1922,649],{"class":577},[567,1924,591],{"class":577},[567,1926,661],{"class":581},[550,1928,1930],{"id":1929},"migrating-from-console-pino-consola-winston","Migrating from console \u002F pino \u002F consola \u002F winston",[511,1932,1933,1934,1937,1938,1941],{},"Pick the tab matching your current logger to see the ",[545,1935,1936],{},"before"," call style. The ",[545,1939,1940],{},"after (evlog)"," snippet underneath is the same regardless of where you came from.",[1943,1944,1945,2165,2438,2624],"code-group",{},[557,1946,1949],{"className":559,"code":1947,"filename":1948,"language":562,"meta":563,"style":563},"import pino from 'pino'\n\nconst log = pino({ name: 'checkout' })\n\nlog.info({ event: 'checkout_started' })\nlog.info({ event: 'cart_loaded', items: 3, total: 9999 })\nlog.warn({ event: 'inventory_low', sku: 'SKU-42' })\nlog.error({ event: 'payment_failed', reason: 'card_declined' })\n","pino",[515,1950,1951,1967,1971,2005,2009,2037,2084,2125],{"__ignoreMap":563},[567,1952,1953,1955,1958,1961,1963,1965],{"class":569,"line":570},[567,1954,574],{"class":573},[567,1956,1957],{"class":581}," pino ",[567,1959,1960],{"class":573},"from",[567,1962,597],{"class":577},[567,1964,1948],{"class":600},[567,1966,604],{"class":577},[567,1968,1969],{"class":569,"line":607},[567,1970,611],{"emptyLinePlaceholder":610},[567,1972,1973,1976,1979,1982,1985,1987,1989,1992,1994,1996,1999,2001,2003],{"class":569,"line":614},[567,1974,1975],{"class":1580},"const",[567,1977,1978],{"class":581}," log ",[567,1980,1981],{"class":577},"=",[567,1983,1984],{"class":617}," pino",[567,1986,621],{"class":581},[567,1988,956],{"class":577},[567,1990,1991],{"class":630}," name",[567,1993,634],{"class":577},[567,1995,597],{"class":577},[567,1997,1998],{"class":600},"checkout",[567,2000,649],{"class":577},[567,2002,591],{"class":577},[567,2004,661],{"class":581},[567,2006,2007],{"class":569,"line":627},[567,2008,611],{"emptyLinePlaceholder":610},[567,2010,2011,2013,2015,2017,2019,2021,2024,2026,2028,2031,2033,2035],{"class":569,"line":655},[567,2012,517],{"class":581},[567,2014,536],{"class":577},[567,2016,539],{"class":617},[567,2018,621],{"class":581},[567,2020,956],{"class":577},[567,2022,2023],{"class":630}," event",[567,2025,634],{"class":577},[567,2027,597],{"class":577},[567,2029,2030],{"class":600},"checkout_started",[567,2032,649],{"class":577},[567,2034,591],{"class":577},[567,2036,661],{"class":581},[567,2038,2039,2041,2043,2045,2047,2049,2051,2053,2055,2058,2060,2062,2065,2067,2070,2072,2075,2077,2080,2082],{"class":569,"line":664},[567,2040,517],{"class":581},[567,2042,536],{"class":577},[567,2044,539],{"class":617},[567,2046,621],{"class":581},[567,2048,956],{"class":577},[567,2050,2023],{"class":630},[567,2052,634],{"class":577},[567,2054,597],{"class":577},[567,2056,2057],{"class":600},"cart_loaded",[567,2059,649],{"class":577},[567,2061,585],{"class":577},[567,2063,2064],{"class":630}," items",[567,2066,634],{"class":577},[567,2068,2069],{"class":978}," 3",[567,2071,585],{"class":577},[567,2073,2074],{"class":630}," total",[567,2076,634],{"class":577},[567,2078,2079],{"class":978}," 9999",[567,2081,591],{"class":577},[567,2083,661],{"class":581},[567,2085,2086,2088,2090,2092,2094,2096,2098,2100,2102,2105,2107,2109,2112,2114,2116,2119,2121,2123],{"class":569,"line":669},[567,2087,517],{"class":581},[567,2089,536],{"class":577},[567,2091,781],{"class":617},[567,2093,621],{"class":581},[567,2095,956],{"class":577},[567,2097,2023],{"class":630},[567,2099,634],{"class":577},[567,2101,597],{"class":577},[567,2103,2104],{"class":600},"inventory_low",[567,2106,649],{"class":577},[567,2108,585],{"class":577},[567,2110,2111],{"class":630}," sku",[567,2113,634],{"class":577},[567,2115,597],{"class":577},[567,2117,2118],{"class":600},"SKU-42",[567,2120,649],{"class":577},[567,2122,591],{"class":577},[567,2124,661],{"class":581},[567,2126,2127,2129,2131,2133,2135,2137,2139,2141,2143,2146,2148,2150,2152,2154,2156,2159,2161,2163],{"class":569,"line":1741},[567,2128,517],{"class":581},[567,2130,536],{"class":577},[567,2132,810],{"class":617},[567,2134,621],{"class":581},[567,2136,956],{"class":577},[567,2138,2023],{"class":630},[567,2140,634],{"class":577},[567,2142,597],{"class":577},[567,2144,2145],{"class":600},"payment_failed",[567,2147,649],{"class":577},[567,2149,585],{"class":577},[567,2151,1725],{"class":630},[567,2153,634],{"class":577},[567,2155,597],{"class":577},[567,2157,2158],{"class":600},"card_declined",[567,2160,649],{"class":577},[567,2162,591],{"class":577},[567,2164,661],{"class":581},[557,2166,2169],{"className":559,"code":2167,"filename":2168,"language":562,"meta":563,"style":563},"import { createLogger, format, transports } from 'winston'\n\nconst log = createLogger({\n  defaultMeta: { service: 'checkout' },\n  format: format.json(),\n  transports: [new transports.Console()],\n})\n\nlog.info({ event: 'checkout_started' })\nlog.info({ event: 'cart_loaded', items: 3, total: 9999 })\nlog.warn({ event: 'inventory_low', sku: 'SKU-42' })\nlog.error({ event: 'payment_failed', reason: 'card_declined' })\n","winston",[515,2170,2171,2200,2204,2218,2239,2257,2282,2288,2292,2318,2360,2399],{"__ignoreMap":563},[567,2172,2173,2175,2177,2180,2182,2185,2187,2190,2192,2194,2196,2198],{"class":569,"line":570},[567,2174,574],{"class":573},[567,2176,578],{"class":577},[567,2178,2179],{"class":581}," createLogger",[567,2181,585],{"class":577},[567,2183,2184],{"class":581}," format",[567,2186,585],{"class":577},[567,2188,2189],{"class":581}," transports",[567,2191,591],{"class":577},[567,2193,594],{"class":573},[567,2195,597],{"class":577},[567,2197,2168],{"class":600},[567,2199,604],{"class":577},[567,2201,2202],{"class":569,"line":607},[567,2203,611],{"emptyLinePlaceholder":610},[567,2205,2206,2208,2210,2212,2214,2216],{"class":569,"line":614},[567,2207,1975],{"class":1580},[567,2209,1978],{"class":581},[567,2211,1981],{"class":577},[567,2213,2179],{"class":617},[567,2215,621],{"class":581},[567,2217,624],{"class":577},[567,2219,2220,2223,2225,2227,2229,2231,2233,2235,2237],{"class":569,"line":627},[567,2221,2222],{"class":630},"  defaultMeta",[567,2224,634],{"class":577},[567,2226,578],{"class":577},[567,2228,639],{"class":630},[567,2230,634],{"class":577},[567,2232,597],{"class":577},[567,2234,1998],{"class":600},[567,2236,649],{"class":577},[567,2238,652],{"class":577},[567,2240,2241,2244,2246,2248,2250,2253,2255],{"class":569,"line":655},[567,2242,2243],{"class":630},"  format",[567,2245,634],{"class":577},[567,2247,2184],{"class":581},[567,2249,536],{"class":577},[567,2251,2252],{"class":617},"json",[567,2254,1858],{"class":581},[567,2256,1861],{"class":577},[567,2258,2259,2262,2264,2267,2270,2272,2274,2277,2280],{"class":569,"line":664},[567,2260,2261],{"class":630},"  transports",[567,2263,634],{"class":577},[567,2265,2266],{"class":581}," [",[567,2268,2269],{"class":577},"new",[567,2271,2189],{"class":581},[567,2273,536],{"class":577},[567,2275,2276],{"class":617},"Console",[567,2278,2279],{"class":581},"()]",[567,2281,1861],{"class":577},[567,2283,2284,2286],{"class":569,"line":669},[567,2285,658],{"class":577},[567,2287,661],{"class":581},[567,2289,2290],{"class":569,"line":1741},[567,2291,611],{"emptyLinePlaceholder":610},[567,2293,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316],{"class":569,"line":1747},[567,2295,517],{"class":581},[567,2297,536],{"class":577},[567,2299,539],{"class":617},[567,2301,621],{"class":581},[567,2303,956],{"class":577},[567,2305,2023],{"class":630},[567,2307,634],{"class":577},[567,2309,597],{"class":577},[567,2311,2030],{"class":600},[567,2313,649],{"class":577},[567,2315,591],{"class":577},[567,2317,661],{"class":581},[567,2319,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358],{"class":569,"line":1753},[567,2321,517],{"class":581},[567,2323,536],{"class":577},[567,2325,539],{"class":617},[567,2327,621],{"class":581},[567,2329,956],{"class":577},[567,2331,2023],{"class":630},[567,2333,634],{"class":577},[567,2335,597],{"class":577},[567,2337,2057],{"class":600},[567,2339,649],{"class":577},[567,2341,585],{"class":577},[567,2343,2064],{"class":630},[567,2345,634],{"class":577},[567,2347,2069],{"class":978},[567,2349,585],{"class":577},[567,2351,2074],{"class":630},[567,2353,634],{"class":577},[567,2355,2079],{"class":978},[567,2357,591],{"class":577},[567,2359,661],{"class":581},[567,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397],{"class":569,"line":2362},11,[567,2364,517],{"class":581},[567,2366,536],{"class":577},[567,2368,781],{"class":617},[567,2370,621],{"class":581},[567,2372,956],{"class":577},[567,2374,2023],{"class":630},[567,2376,634],{"class":577},[567,2378,597],{"class":577},[567,2380,2104],{"class":600},[567,2382,649],{"class":577},[567,2384,585],{"class":577},[567,2386,2111],{"class":630},[567,2388,634],{"class":577},[567,2390,597],{"class":577},[567,2392,2118],{"class":600},[567,2394,649],{"class":577},[567,2396,591],{"class":577},[567,2398,661],{"class":581},[567,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436],{"class":569,"line":2401},12,[567,2403,517],{"class":581},[567,2405,536],{"class":577},[567,2407,810],{"class":617},[567,2409,621],{"class":581},[567,2411,956],{"class":577},[567,2413,2023],{"class":630},[567,2415,634],{"class":577},[567,2417,597],{"class":577},[567,2419,2145],{"class":600},[567,2421,649],{"class":577},[567,2423,585],{"class":577},[567,2425,1725],{"class":630},[567,2427,634],{"class":577},[567,2429,597],{"class":577},[567,2431,2158],{"class":600},[567,2433,649],{"class":577},[567,2435,591],{"class":577},[567,2437,661],{"class":581},[557,2439,2442],{"className":559,"code":2440,"filename":2441,"language":562,"meta":563,"style":563},"import { consola } from 'consola'\n\nconst log = consola.withTag('checkout')\n\nlog.info('Starting checkout')\nlog.info('cart loaded', { items: 3, total: 9999 })\nlog.warn('inventory low', { sku: 'SKU-42' })\nlog.error('payment failed', { reason: 'card_declined' })\n","consola",[515,2443,2444,2463,2467,2492,2496,2515,2554,2589],{"__ignoreMap":563},[567,2445,2446,2448,2450,2453,2455,2457,2459,2461],{"class":569,"line":570},[567,2447,574],{"class":573},[567,2449,578],{"class":577},[567,2451,2452],{"class":581}," consola",[567,2454,591],{"class":577},[567,2456,594],{"class":573},[567,2458,597],{"class":577},[567,2460,2441],{"class":600},[567,2462,604],{"class":577},[567,2464,2465],{"class":569,"line":607},[567,2466,611],{"emptyLinePlaceholder":610},[567,2468,2469,2471,2473,2475,2477,2479,2482,2484,2486,2488,2490],{"class":569,"line":614},[567,2470,1975],{"class":1580},[567,2472,1978],{"class":581},[567,2474,1981],{"class":577},[567,2476,2452],{"class":581},[567,2478,536],{"class":577},[567,2480,2481],{"class":617},"withTag",[567,2483,621],{"class":581},[567,2485,649],{"class":577},[567,2487,1998],{"class":600},[567,2489,649],{"class":577},[567,2491,661],{"class":581},[567,2493,2494],{"class":569,"line":627},[567,2495,611],{"emptyLinePlaceholder":610},[567,2497,2498,2500,2502,2504,2506,2508,2511,2513],{"class":569,"line":655},[567,2499,517],{"class":581},[567,2501,536],{"class":577},[567,2503,539],{"class":617},[567,2505,621],{"class":581},[567,2507,649],{"class":577},[567,2509,2510],{"class":600},"Starting checkout",[567,2512,649],{"class":577},[567,2514,661],{"class":581},[567,2516,2517,2519,2521,2523,2525,2527,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552],{"class":569,"line":664},[567,2518,517],{"class":581},[567,2520,536],{"class":577},[567,2522,539],{"class":617},[567,2524,621],{"class":581},[567,2526,649],{"class":577},[567,2528,2529],{"class":600},"cart loaded",[567,2531,649],{"class":577},[567,2533,585],{"class":577},[567,2535,578],{"class":577},[567,2537,2064],{"class":630},[567,2539,634],{"class":577},[567,2541,2069],{"class":978},[567,2543,585],{"class":577},[567,2545,2074],{"class":630},[567,2547,634],{"class":577},[567,2549,2079],{"class":978},[567,2551,591],{"class":577},[567,2553,661],{"class":581},[567,2555,2556,2558,2560,2562,2564,2566,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587],{"class":569,"line":669},[567,2557,517],{"class":581},[567,2559,536],{"class":577},[567,2561,781],{"class":617},[567,2563,621],{"class":581},[567,2565,649],{"class":577},[567,2567,2568],{"class":600},"inventory low",[567,2570,649],{"class":577},[567,2572,585],{"class":577},[567,2574,578],{"class":577},[567,2576,2111],{"class":630},[567,2578,634],{"class":577},[567,2580,597],{"class":577},[567,2582,2118],{"class":600},[567,2584,649],{"class":577},[567,2586,591],{"class":577},[567,2588,661],{"class":581},[567,2590,2591,2593,2595,2597,2599,2601,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622],{"class":569,"line":1741},[567,2592,517],{"class":581},[567,2594,536],{"class":577},[567,2596,810],{"class":617},[567,2598,621],{"class":581},[567,2600,649],{"class":577},[567,2602,2603],{"class":600},"payment failed",[567,2605,649],{"class":577},[567,2607,585],{"class":577},[567,2609,578],{"class":577},[567,2611,1725],{"class":630},[567,2613,634],{"class":577},[567,2615,597],{"class":577},[567,2617,2158],{"class":600},[567,2619,649],{"class":577},[567,2621,591],{"class":577},[567,2623,661],{"class":581},[557,2625,2627],{"className":559,"code":2626,"filename":521,"language":562,"meta":563,"style":563},"console.log('[checkout] Starting checkout')\nconsole.log('[checkout] cart loaded', { items: 3, total: 9999 })\nconsole.warn('[checkout] inventory low', { sku: 'SKU-42' })\nconsole.error('[checkout] payment failed', { reason: 'card_declined' })\n",[515,2628,2629,2649,2688,2723],{"__ignoreMap":563},[567,2630,2631,2634,2636,2638,2640,2642,2645,2647],{"class":569,"line":570},[567,2632,2633],{"class":581},"console",[567,2635,536],{"class":577},[567,2637,517],{"class":617},[567,2639,621],{"class":581},[567,2641,649],{"class":577},[567,2643,2644],{"class":600},"[checkout] Starting checkout",[567,2646,649],{"class":577},[567,2648,661],{"class":581},[567,2650,2651,2653,2655,2657,2659,2661,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686],{"class":569,"line":607},[567,2652,2633],{"class":581},[567,2654,536],{"class":577},[567,2656,517],{"class":617},[567,2658,621],{"class":581},[567,2660,649],{"class":577},[567,2662,2663],{"class":600},"[checkout] cart loaded",[567,2665,649],{"class":577},[567,2667,585],{"class":577},[567,2669,578],{"class":577},[567,2671,2064],{"class":630},[567,2673,634],{"class":577},[567,2675,2069],{"class":978},[567,2677,585],{"class":577},[567,2679,2074],{"class":630},[567,2681,634],{"class":577},[567,2683,2079],{"class":978},[567,2685,591],{"class":577},[567,2687,661],{"class":581},[567,2689,2690,2692,2694,2696,2698,2700,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721],{"class":569,"line":614},[567,2691,2633],{"class":581},[567,2693,536],{"class":577},[567,2695,781],{"class":617},[567,2697,621],{"class":581},[567,2699,649],{"class":577},[567,2701,2702],{"class":600},"[checkout] inventory low",[567,2704,649],{"class":577},[567,2706,585],{"class":577},[567,2708,578],{"class":577},[567,2710,2111],{"class":630},[567,2712,634],{"class":577},[567,2714,597],{"class":577},[567,2716,2118],{"class":600},[567,2718,649],{"class":577},[567,2720,591],{"class":577},[567,2722,661],{"class":581},[567,2724,2725,2727,2729,2731,2733,2735,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756],{"class":569,"line":627},[567,2726,2633],{"class":581},[567,2728,536],{"class":577},[567,2730,810],{"class":617},[567,2732,621],{"class":581},[567,2734,649],{"class":577},[567,2736,2737],{"class":600},"[checkout] payment failed",[567,2739,649],{"class":577},[567,2741,585],{"class":577},[567,2743,578],{"class":577},[567,2745,1725],{"class":630},[567,2747,634],{"class":577},[567,2749,597],{"class":577},[567,2751,2158],{"class":600},[567,2753,649],{"class":577},[567,2755,591],{"class":577},[567,2757,661],{"class":581},[511,2759,2760],{},"All four become this — no formatter, transport, or peer-dep wiring required:",[557,2762,2765],{"className":559,"code":2763,"filename":2764,"language":562,"meta":563,"style":563},"import { initLogger, log } from 'evlog'\n\ninitLogger({ env: { service: 'checkout' } })\n\nlog.info({ event: 'checkout_started' })\nlog.info({ event: 'cart_loaded', items: 3, total: 9999 })\nlog.warn({ event: 'inventory_low', sku: 'SKU-42' })\nlog.error({ event: 'payment_failed', reason: 'card_declined' })\n","After (evlog)",[515,2766,2767,2789,2793,2824,2828,2854,2896,2934],{"__ignoreMap":563},[567,2768,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787],{"class":569,"line":570},[567,2770,574],{"class":573},[567,2772,578],{"class":577},[567,2774,582],{"class":581},[567,2776,585],{"class":577},[567,2778,588],{"class":581},[567,2780,591],{"class":577},[567,2782,594],{"class":573},[567,2784,597],{"class":577},[567,2786,601],{"class":600},[567,2788,604],{"class":577},[567,2790,2791],{"class":569,"line":607},[567,2792,611],{"emptyLinePlaceholder":610},[567,2794,2795,2797,2799,2801,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822],{"class":569,"line":614},[567,2796,618],{"class":617},[567,2798,621],{"class":581},[567,2800,956],{"class":577},[567,2802,2803],{"class":630}," env",[567,2805,634],{"class":577},[567,2807,578],{"class":577},[567,2809,639],{"class":630},[567,2811,634],{"class":577},[567,2813,597],{"class":577},[567,2815,1998],{"class":600},[567,2817,649],{"class":577},[567,2819,591],{"class":577},[567,2821,591],{"class":577},[567,2823,661],{"class":581},[567,2825,2826],{"class":569,"line":627},[567,2827,611],{"emptyLinePlaceholder":610},[567,2829,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852],{"class":569,"line":655},[567,2831,517],{"class":581},[567,2833,536],{"class":577},[567,2835,539],{"class":617},[567,2837,621],{"class":581},[567,2839,956],{"class":577},[567,2841,2023],{"class":630},[567,2843,634],{"class":577},[567,2845,597],{"class":577},[567,2847,2030],{"class":600},[567,2849,649],{"class":577},[567,2851,591],{"class":577},[567,2853,661],{"class":581},[567,2855,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894],{"class":569,"line":664},[567,2857,517],{"class":581},[567,2859,536],{"class":577},[567,2861,539],{"class":617},[567,2863,621],{"class":581},[567,2865,956],{"class":577},[567,2867,2023],{"class":630},[567,2869,634],{"class":577},[567,2871,597],{"class":577},[567,2873,2057],{"class":600},[567,2875,649],{"class":577},[567,2877,585],{"class":577},[567,2879,2064],{"class":630},[567,2881,634],{"class":577},[567,2883,2069],{"class":978},[567,2885,585],{"class":577},[567,2887,2074],{"class":630},[567,2889,634],{"class":577},[567,2891,2079],{"class":978},[567,2893,591],{"class":577},[567,2895,661],{"class":581},[567,2897,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932],{"class":569,"line":669},[567,2899,517],{"class":581},[567,2901,536],{"class":577},[567,2903,781],{"class":617},[567,2905,621],{"class":581},[567,2907,956],{"class":577},[567,2909,2023],{"class":630},[567,2911,634],{"class":577},[567,2913,597],{"class":577},[567,2915,2104],{"class":600},[567,2917,649],{"class":577},[567,2919,585],{"class":577},[567,2921,2111],{"class":630},[567,2923,634],{"class":577},[567,2925,597],{"class":577},[567,2927,2118],{"class":600},[567,2929,649],{"class":577},[567,2931,591],{"class":577},[567,2933,661],{"class":581},[567,2935,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970],{"class":569,"line":1741},[567,2937,517],{"class":581},[567,2939,536],{"class":577},[567,2941,810],{"class":617},[567,2943,621],{"class":581},[567,2945,956],{"class":577},[567,2947,2023],{"class":630},[567,2949,634],{"class":577},[567,2951,597],{"class":577},[567,2953,2145],{"class":600},[567,2955,649],{"class":577},[567,2957,585],{"class":577},[567,2959,1725],{"class":630},[567,2961,634],{"class":577},[567,2963,597],{"class":577},[567,2965,2158],{"class":600},[567,2967,649],{"class":577},[567,2969,591],{"class":577},[567,2971,661],{"class":581},[511,2973,2974,2976,2977,2980],{},[515,2975,618],{}," is one line at boot. The drain, redaction, sampling, pretty\u002FJSON switching, and level filtering are all wired by default — no ",[515,2978,2979],{},"pino-pretty"," peer dep, no winston transport assembly, no consola reporter setup.",[524,2982,2984,2985,536],{"color":526,"icon":2983},"i-lucide-arrow-right","Want the full side-by-side (feature comparison tables, honest gaps, per-feature mapping)? See ",[530,2986,2987],{"href":498},"evlog vs pino, winston, consola",[550,2989,2991],{"id":2990},"pairing-with-wide-events","Pairing with wide events",[511,2993,2994,533,2996,2999,3000,3003,3004,3006],{},[515,2995,517],{},[515,2997,2998],{},"createLogger"," live inside the same logger. Use ",[515,3001,3002],{},"log.*"," for events that stand alone (startup messages, ad-hoc warnings, debug traces) and reach for ",[515,3005,2998],{}," when you want one event that captures an entire operation. They share the global drain, redaction, and types — pick per call.",[557,3008,3011],{"className":559,"code":3009,"filename":3010,"language":562,"meta":563,"style":563},"import { initLogger, log, createLogger } from 'evlog'\n\ninitLogger({ env: { service: 'sync-worker' } })\n\nlog.info('sync', 'Worker starting')\n\nconst run = createLogger({ source: 'postgres', target: 's3' })\ntry {\n  const records = await fetchRecords()\n  run.set({ found: records.length })\n\n  for (const record of records) {\n    await syncOne(record)\n    log.debug({ event: 'record_synced', id: record.id })\n  }\n\n  run.set({ status: 'complete', synced: records.length })\n} catch (err) {\n  log.error({ event: 'sync_failed' })\n  run.error(err as Error)\n  throw err\n} finally {\n  run.emit()\n}\n\nlog.info('sync', 'Worker finished')\n","scripts\u002Fsync-data.ts",[515,3012,3013,3039,3043,3074,3078,3106,3110,3151,3158,3178,3208,3212,3234,3250,3292,3297,3302,3344,3357,3384,3406,3415,3425,3437,3442,3447],{"__ignoreMap":563},[567,3014,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037],{"class":569,"line":570},[567,3016,574],{"class":573},[567,3018,578],{"class":577},[567,3020,582],{"class":581},[567,3022,585],{"class":577},[567,3024,588],{"class":581},[567,3026,585],{"class":577},[567,3028,2179],{"class":581},[567,3030,591],{"class":577},[567,3032,594],{"class":573},[567,3034,597],{"class":577},[567,3036,601],{"class":600},[567,3038,604],{"class":577},[567,3040,3041],{"class":569,"line":607},[567,3042,611],{"emptyLinePlaceholder":610},[567,3044,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3066,3068,3070,3072],{"class":569,"line":614},[567,3046,618],{"class":617},[567,3048,621],{"class":581},[567,3050,956],{"class":577},[567,3052,2803],{"class":630},[567,3054,634],{"class":577},[567,3056,578],{"class":577},[567,3058,639],{"class":630},[567,3060,634],{"class":577},[567,3062,597],{"class":577},[567,3064,3065],{"class":600},"sync-worker",[567,3067,649],{"class":577},[567,3069,591],{"class":577},[567,3071,591],{"class":577},[567,3073,661],{"class":581},[567,3075,3076],{"class":569,"line":627},[567,3077,611],{"emptyLinePlaceholder":610},[567,3079,3080,3082,3084,3086,3088,3090,3093,3095,3097,3099,3102,3104],{"class":569,"line":655},[567,3081,517],{"class":581},[567,3083,536],{"class":577},[567,3085,539],{"class":617},[567,3087,621],{"class":581},[567,3089,649],{"class":577},[567,3091,3092],{"class":600},"sync",[567,3094,649],{"class":577},[567,3096,585],{"class":577},[567,3098,597],{"class":577},[567,3100,3101],{"class":600},"Worker starting",[567,3103,649],{"class":577},[567,3105,661],{"class":581},[567,3107,3108],{"class":569,"line":664},[567,3109,611],{"emptyLinePlaceholder":610},[567,3111,3112,3114,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149],{"class":569,"line":669},[567,3113,1975],{"class":1580},[567,3115,3116],{"class":581}," run ",[567,3118,1981],{"class":577},[567,3120,2179],{"class":617},[567,3122,621],{"class":581},[567,3124,956],{"class":577},[567,3126,1039],{"class":630},[567,3128,634],{"class":577},[567,3130,597],{"class":577},[567,3132,1046],{"class":600},[567,3134,649],{"class":577},[567,3136,585],{"class":577},[567,3138,1053],{"class":630},[567,3140,634],{"class":577},[567,3142,597],{"class":577},[567,3144,1060],{"class":600},[567,3146,649],{"class":577},[567,3148,591],{"class":577},[567,3150,661],{"class":581},[567,3152,3153,3156],{"class":569,"line":1741},[567,3154,3155],{"class":573},"try",[567,3157,1601],{"class":577},[567,3159,3160,3163,3166,3169,3172,3175],{"class":569,"line":1747},[567,3161,3162],{"class":1580},"  const",[567,3164,3165],{"class":581}," records",[567,3167,3168],{"class":577}," =",[567,3170,3171],{"class":573}," await",[567,3173,3174],{"class":617}," fetchRecords",[567,3176,3177],{"class":630},"()\n",[567,3179,3180,3183,3185,3188,3190,3192,3195,3197,3199,3201,3204,3206],{"class":569,"line":1753},[567,3181,3182],{"class":581},"  run",[567,3184,536],{"class":577},[567,3186,3187],{"class":617},"set",[567,3189,621],{"class":630},[567,3191,956],{"class":577},[567,3193,3194],{"class":630}," found",[567,3196,634],{"class":577},[567,3198,3165],{"class":581},[567,3200,536],{"class":577},[567,3202,3203],{"class":581},"length",[567,3205,591],{"class":577},[567,3207,661],{"class":630},[567,3209,3210],{"class":569,"line":2362},[567,3211,611],{"emptyLinePlaceholder":610},[567,3213,3214,3217,3219,3221,3224,3227,3229,3232],{"class":569,"line":2401},[567,3215,3216],{"class":573},"  for",[567,3218,1669],{"class":630},[567,3220,1975],{"class":1580},[567,3222,3223],{"class":581}," record",[567,3225,3226],{"class":577}," of",[567,3228,3165],{"class":581},[567,3230,3231],{"class":630},") ",[567,3233,624],{"class":577},[567,3235,3237,3240,3243,3245,3248],{"class":569,"line":3236},13,[567,3238,3239],{"class":573},"    await",[567,3241,3242],{"class":617}," syncOne",[567,3244,621],{"class":630},[567,3246,3247],{"class":581},"record",[567,3249,661],{"class":630},[567,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3272,3274,3276,3279,3281,3283,3285,3288,3290],{"class":569,"line":3252},14,[567,3254,1689],{"class":581},[567,3256,536],{"class":577},[567,3258,839],{"class":617},[567,3260,621],{"class":630},[567,3262,956],{"class":577},[567,3264,2023],{"class":630},[567,3266,634],{"class":577},[567,3268,597],{"class":577},[567,3270,3271],{"class":600},"record_synced",[567,3273,649],{"class":577},[567,3275,585],{"class":577},[567,3277,3278],{"class":630}," id",[567,3280,634],{"class":577},[567,3282,3223],{"class":581},[567,3284,536],{"class":577},[567,3286,3287],{"class":581},"id",[567,3289,591],{"class":577},[567,3291,661],{"class":630},[567,3293,3295],{"class":569,"line":3294},15,[567,3296,1750],{"class":577},[567,3298,3300],{"class":569,"line":3299},16,[567,3301,611],{"emptyLinePlaceholder":610},[567,3303,3305,3307,3309,3311,3313,3315,3318,3320,3322,3325,3327,3329,3332,3334,3336,3338,3340,3342],{"class":569,"line":3304},17,[567,3306,3182],{"class":581},[567,3308,536],{"class":577},[567,3310,3187],{"class":617},[567,3312,621],{"class":630},[567,3314,956],{"class":577},[567,3316,3317],{"class":630}," status",[567,3319,634],{"class":577},[567,3321,597],{"class":577},[567,3323,3324],{"class":600},"complete",[567,3326,649],{"class":577},[567,3328,585],{"class":577},[567,3330,3331],{"class":630}," synced",[567,3333,634],{"class":577},[567,3335,3165],{"class":581},[567,3337,536],{"class":577},[567,3339,3203],{"class":581},[567,3341,591],{"class":577},[567,3343,661],{"class":630},[567,3345,3347,3349,3352,3355],{"class":569,"line":3346},18,[567,3348,658],{"class":577},[567,3350,3351],{"class":573}," catch",[567,3353,3354],{"class":581}," (err) ",[567,3356,624],{"class":577},[567,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382],{"class":569,"line":3359},19,[567,3361,1606],{"class":581},[567,3363,536],{"class":577},[567,3365,810],{"class":617},[567,3367,621],{"class":630},[567,3369,956],{"class":577},[567,3371,2023],{"class":630},[567,3373,634],{"class":577},[567,3375,597],{"class":577},[567,3377,1032],{"class":600},[567,3379,649],{"class":577},[567,3381,591],{"class":577},[567,3383,661],{"class":630},[567,3385,3387,3389,3391,3393,3395,3398,3401,3404],{"class":569,"line":3386},20,[567,3388,3182],{"class":581},[567,3390,536],{"class":577},[567,3392,810],{"class":617},[567,3394,621],{"class":630},[567,3396,3397],{"class":581},"err",[567,3399,3400],{"class":573}," as",[567,3402,3403],{"class":872}," Error",[567,3405,661],{"class":630},[567,3407,3409,3412],{"class":569,"line":3408},21,[567,3410,3411],{"class":573},"  throw",[567,3413,3414],{"class":581}," err\n",[567,3416,3418,3420,3423],{"class":569,"line":3417},22,[567,3419,658],{"class":577},[567,3421,3422],{"class":573}," finally",[567,3424,1601],{"class":577},[567,3426,3428,3430,3432,3435],{"class":569,"line":3427},23,[567,3429,3182],{"class":581},[567,3431,536],{"class":577},[567,3433,3434],{"class":617},"emit",[567,3436,3177],{"class":630},[567,3438,3440],{"class":569,"line":3439},24,[567,3441,1756],{"class":577},[567,3443,3445],{"class":569,"line":3444},25,[567,3446,611],{"emptyLinePlaceholder":610},[567,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3471,3473],{"class":569,"line":3449},26,[567,3451,517],{"class":581},[567,3453,536],{"class":577},[567,3455,539],{"class":617},[567,3457,621],{"class":581},[567,3459,649],{"class":577},[567,3461,3092],{"class":600},[567,3463,649],{"class":577},[567,3465,585],{"class":577},[567,3467,597],{"class":577},[567,3469,3470],{"class":600},"Worker finished",[567,3472,649],{"class":577},[567,3474,661],{"class":581},[511,3476,513,3477,3479,3480,3482],{},[515,3478,3002],{}," calls give you a real-time trail in development; the ",[515,3481,2998],{}," block gives your dashboard one queryable row per run. Both go through the same drain.",[550,3484,3486],{"id":3485},"next-steps","Next Steps",[3488,3489,3490,3496,3512,3520,3525,3530],"ul",{},[3491,3492,3493,3495],"li",{},[530,3494,46],{"href":47},": Accumulate context and emit comprehensive events",[3491,3497,3498,3500,3501,3504,3505,3508,3509],{},[530,3499,51],{"href":52},": Throw errors with ",[515,3502,3503],{},"why",", ",[515,3506,3507],{},"fix",", and ",[515,3510,3511],{},"link",[3491,3513,3514,3516,3517,3519],{},[530,3515,480],{"href":481},": All ",[515,3518,618],{}," options",[3491,3521,3522,3524],{},[530,3523,133],{"href":138},": Send events to Axiom, Sentry, PostHog, and more",[3491,3526,3527,3529],{},[530,3528,532],{"href":271},": Scripts, workers, and libraries without a web framework",[3491,3531,3532,3535],{},[530,3533,3534],{"href":498},"evlog vs other loggers",": Side-by-side with pino, winston, consola",[3537,3538,3539],"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":563,"searchDepth":607,"depth":607,"links":3541},[3542,3543,3547,3548,3553,3554,3555,3556],{"id":552,"depth":607,"text":397},{"id":708,"depth":607,"text":709,"children":3544},[3545,3546],{"id":713,"depth":614,"text":714},{"id":912,"depth":614,"text":913},{"id":1150,"depth":607,"text":1151},{"id":1247,"depth":607,"text":1248,"children":3549},[3550,3551,3552],{"id":1251,"depth":614,"text":1252},{"id":1401,"depth":614,"text":1402},{"id":1546,"depth":614,"text":1547},{"id":1759,"depth":607,"text":1760},{"id":1929,"depth":607,"text":1930},{"id":2990,"depth":607,"text":2991},{"id":3485,"depth":607,"text":3486},"evlog's general-purpose logger. A drop-in for console.log, pino, or consola, with the same level filtering, drain pipeline, redaction, and pretty\u002FJSON output as wide events.","md",[3560,3562],{"label":46,"icon":49,"to":47,"color":526,"variant":3561},"subtle",{"label":480,"icon":483,"to":481,"color":526,"variant":3561},{},{"icon":44},{"title":41,"description":3557},"mr6ttIxxdWoGZe4ZZTWhSD_XjIVBpVDjxiCYDkfyrgI",[3568,3570],{"title":36,"path":37,"stem":38,"description":3569,"icon":39,"children":-1},"The mental model — three logging modes, the wide event lifecycle, sampling, typed fields, and redaction. Read this section in order if you're new; pick what you need if you're not.",{"title":46,"path":47,"stem":48,"description":3571,"icon":49,"children":-1},"Accumulate context over any unit of work and emit a single comprehensive event. Works for HTTP requests, scripts, background jobs, queue workers, and workflows.",1785229776115]