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