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