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