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