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