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