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