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