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