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