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