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