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