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