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