[{"data":1,"prerenderedAt":2010},["ShallowReactive",2],{"navigation_docs":3,"-logging-simple-logging":282,"-logging-simple-logging-surround":2005},[4,30,65,105,188,252,268],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Logging","\u002Flogging","2.logging",[35,40,45,50,55,60],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":61,"path":62,"stem":63,"icon":64},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":66,"path":67,"stem":68,"children":69,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[70,75,80,85,90,95,100],{"title":71,"path":72,"stem":73,"icon":74},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":76,"path":77,"stem":78,"icon":79},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":81,"path":82,"stem":83,"icon":84},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":86,"path":87,"stem":88,"icon":89},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":91,"path":92,"stem":93,"icon":94},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices","i-lucide-shield-check",{"title":96,"path":97,"stem":98,"icon":99},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":101,"path":102,"stem":103,"icon":104},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Frameworks","\u002Fframeworks","4.frameworks",[110,114,119,124,129,134,139,144,149,154,159,164,169,174,178,183],{"title":36,"path":111,"stem":112,"icon":113},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":115,"path":116,"stem":117,"icon":118},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":120,"path":121,"stem":122,"icon":123},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":125,"path":126,"stem":127,"icon":128},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":130,"path":131,"stem":132,"icon":133},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":135,"path":136,"stem":137,"icon":138},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":140,"path":141,"stem":142,"icon":143},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":145,"path":146,"stem":147,"icon":148},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":150,"path":151,"stem":152,"icon":153},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":155,"path":156,"stem":157,"icon":158},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":160,"path":161,"stem":162,"icon":163},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":165,"path":166,"stem":167,"icon":168},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":170,"path":171,"stem":172,"icon":173},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":175,"path":176,"stem":177,"icon":89},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":179,"path":180,"stem":181,"icon":182},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":184,"path":185,"stem":186,"icon":187},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":189,"path":190,"stem":191,"children":192,"page":29},"Adapters","\u002Fadapters","5.adapters",[193,197,202,207,212,217,222,227,232,237,242,247],{"title":36,"path":194,"stem":195,"icon":196},"\u002Fadapters\u002Foverview","5.adapters\u002F1.overview","i-custom-plug",{"title":198,"path":199,"stem":200,"icon":201},"Custom Adapters","\u002Fadapters\u002Fcustom","5.adapters\u002F10.custom","i-lucide-code",{"title":203,"path":204,"stem":205,"icon":206},"Pipeline","\u002Fadapters\u002Fpipeline","5.adapters\u002F11.pipeline","i-lucide-workflow",{"title":208,"path":209,"stem":210,"icon":211},"Browser","\u002Fadapters\u002Fbrowser","5.adapters\u002F12.browser","i-lucide-globe",{"title":213,"path":214,"stem":215,"icon":216},"Axiom","\u002Fadapters\u002Faxiom","5.adapters\u002F2.axiom","i-custom-axiom",{"title":218,"path":219,"stem":220,"icon":221},"OTLP","\u002Fadapters\u002Fotlp","5.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":223,"path":224,"stem":225,"icon":226},"PostHog","\u002Fadapters\u002Fposthog","5.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":228,"path":229,"stem":230,"icon":231},"Sentry","\u002Fadapters\u002Fsentry","5.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":233,"path":234,"stem":235,"icon":236},"Better Stack","\u002Fadapters\u002Fbetter-stack","5.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":238,"path":239,"stem":240,"icon":241},"File System","\u002Fadapters\u002Ffs","5.adapters\u002F7.fs","i-lucide-hard-drive",{"title":243,"path":244,"stem":245,"icon":246},"Datadog","\u002Fadapters\u002Fdatadog","5.adapters\u002F8.datadog","i-simple-icons-datadog",{"title":248,"path":249,"stem":250,"icon":251},"HyperDX","\u002Fadapters\u002Fhyperdx","5.adapters\u002F9.hyperdx","i-custom-hyperdx",{"title":253,"path":254,"stem":255,"children":256,"page":29},"Enrichers","\u002Fenrichers","6.enrichers",[257,260,264],{"title":36,"path":258,"stem":259,"icon":28},"\u002Fenrichers\u002Foverview","6.enrichers\u002F1.overview",{"title":261,"path":262,"stem":263,"icon":187},"Built-in","\u002Fenrichers\u002Fbuilt-in","6.enrichers\u002F2.built-in",{"title":265,"path":266,"stem":267,"icon":201},"Custom","\u002Fenrichers\u002Fcustom","6.enrichers\u002F3.custom",{"title":269,"path":270,"stem":271,"children":272,"page":29},"NuxtHub","\u002Fnuxthub","7.nuxthub",[273,277],{"title":36,"path":274,"stem":275,"icon":276},"\u002Fnuxthub\u002Foverview","7.nuxthub\u002F1.overview","i-lucide-database",{"title":278,"path":279,"stem":280,"icon":281},"Retention","\u002Fnuxthub\u002Fretention","7.nuxthub\u002F2.retention","i-lucide-clock",{"id":283,"title":41,"body":284,"description":1994,"extension":1995,"links":1996,"meta":2001,"navigation":2002,"path":42,"seo":2003,"stem":43,"__hash__":2004},"docs\u002F2.logging\u002F1.simple-logging.md",{"type":285,"value":286,"toc":1978},"minimark",[287,300,313,318,321,461,471,475,480,483,625,675,679,682,846,903,913,917,996,1011,1015,1019,1165,1169,1310,1314,1523,1527,1534,1693,1697,1712,1932,1936,1974],[288,289,290,291,295,296,299],"p",{},"The ",[292,293,294],"code",{},"log"," API is the simplest way to use evlog. Each call emits a single structured event, no accumulation, no lifecycle management, no manual ",[292,297,298],{},"emit()",".",[301,302,304,305,307,308,312],"callout",{"color":303,"icon":28},"info","In Nuxt, ",[292,306,294],{}," is ",[309,310,311],"strong",{},"auto-imported",". No import statement needed.",[314,315,317],"h2",{"id":316},"setup","Setup",[288,319,320],{},"For standalone projects (non-Nuxt), initialize once at startup:",[322,323,329],"pre",{"className":324,"code":325,"filename":326,"language":327,"meta":328,"style":328},"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","",[292,330,331,370,377,390,418,427,432],{"__ignoreMap":328},[332,333,336,340,344,348,351,354,357,360,363,367],"span",{"class":334,"line":335},"line",1,[332,337,339],{"class":338},"s7zQu","import",[332,341,343],{"class":342},"sMK4o"," {",[332,345,347],{"class":346},"sTEyZ"," initLogger",[332,349,350],{"class":342},",",[332,352,353],{"class":346}," log",[332,355,356],{"class":342}," }",[332,358,359],{"class":338}," from",[332,361,362],{"class":342}," '",[332,364,366],{"class":365},"sfazB","evlog",[332,368,369],{"class":342},"'\n",[332,371,373],{"class":334,"line":372},2,[332,374,376],{"emptyLinePlaceholder":375},true,"\n",[332,378,380,384,387],{"class":334,"line":379},3,[332,381,383],{"class":382},"s2Zo4","initLogger",[332,385,386],{"class":346},"(",[332,388,389],{"class":342},"{\n",[332,391,393,397,400,402,405,407,409,412,415],{"class":334,"line":392},4,[332,394,396],{"class":395},"swJcz","  env",[332,398,399],{"class":342},":",[332,401,343],{"class":342},[332,403,404],{"class":395}," service",[332,406,399],{"class":342},[332,408,362],{"class":342},[332,410,411],{"class":365},"my-app",[332,413,414],{"class":342},"'",[332,416,417],{"class":342}," },\n",[332,419,421,424],{"class":334,"line":420},5,[332,422,423],{"class":342},"}",[332,425,426],{"class":346},")\n",[332,428,430],{"class":334,"line":429},6,[332,431,376],{"emptyLinePlaceholder":375},[332,433,435,437,439,441,443,445,448,450,452,454,457,459],{"class":334,"line":434},7,[332,436,294],{"class":346},[332,438,299],{"class":342},[332,440,303],{"class":382},[332,442,386],{"class":346},[332,444,414],{"class":342},[332,446,447],{"class":365},"app",[332,449,414],{"class":342},[332,451,350],{"class":342},[332,453,362],{"class":342},[332,455,456],{"class":365},"Server started",[332,458,414],{"class":342},[332,460,426],{"class":346},[301,462,463,466,467,470],{"color":303,"icon":13},[292,464,465],{},"env.service"," defaults to ",[292,468,469],{},"'app'"," if not specified. Only set it if you want a custom service name.",[314,472,474],{"id":473},"two-call-styles","Two Call Styles",[476,477,479],"h3",{"id":478},"tagged-logs","Tagged Logs",[288,481,482],{},"Pass a tag and a message for quick, readable output:",[322,484,486],{"className":324,"code":485,"filename":326,"language":327,"meta":328,"style":328},"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",[292,487,488,506,510,538,567,596],{"__ignoreMap":328},[332,489,490,492,494,496,498,500,502,504],{"class":334,"line":335},[332,491,339],{"class":338},[332,493,343],{"class":342},[332,495,353],{"class":346},[332,497,356],{"class":342},[332,499,359],{"class":338},[332,501,362],{"class":342},[332,503,366],{"class":365},[332,505,369],{"class":342},[332,507,508],{"class":334,"line":372},[332,509,376],{"emptyLinePlaceholder":375},[332,511,512,514,516,518,520,522,525,527,529,531,534,536],{"class":334,"line":379},[332,513,294],{"class":346},[332,515,299],{"class":342},[332,517,303],{"class":382},[332,519,386],{"class":346},[332,521,414],{"class":342},[332,523,524],{"class":365},"auth",[332,526,414],{"class":342},[332,528,350],{"class":342},[332,530,362],{"class":342},[332,532,533],{"class":365},"User logged in",[332,535,414],{"class":342},[332,537,426],{"class":346},[332,539,540,542,544,547,549,551,554,556,558,560,563,565],{"class":334,"line":392},[332,541,294],{"class":346},[332,543,299],{"class":342},[332,545,546],{"class":382},"warn",[332,548,386],{"class":346},[332,550,414],{"class":342},[332,552,553],{"class":365},"cache",[332,555,414],{"class":342},[332,557,350],{"class":342},[332,559,362],{"class":342},[332,561,562],{"class":365},"Cache miss for key user:42",[332,564,414],{"class":342},[332,566,426],{"class":346},[332,568,569,571,573,576,578,580,583,585,587,589,592,594],{"class":334,"line":420},[332,570,294],{"class":346},[332,572,299],{"class":342},[332,574,575],{"class":382},"error",[332,577,386],{"class":346},[332,579,414],{"class":342},[332,581,582],{"class":365},"payment",[332,584,414],{"class":342},[332,586,350],{"class":342},[332,588,362],{"class":342},[332,590,591],{"class":365},"Stripe webhook failed",[332,593,414],{"class":342},[332,595,426],{"class":346},[332,597,598,600,602,605,607,609,612,614,616,618,621,623],{"class":334,"line":429},[332,599,294],{"class":346},[332,601,299],{"class":342},[332,603,604],{"class":382},"debug",[332,606,386],{"class":346},[332,608,414],{"class":342},[332,610,611],{"class":365},"router",[332,613,414],{"class":342},[332,615,350],{"class":342},[332,617,362],{"class":342},[332,619,620],{"class":365},"Matched route \u002Fapi\u002Fcheckout",[332,622,414],{"class":342},[332,624,426],{"class":346},[322,626,631],{"className":627,"code":628,"filename":629,"language":630,"meta":328,"style":328},"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",[292,632,633,642,656,667],{"__ignoreMap":328},[332,634,635,639],{"class":334,"line":335},[332,636,638],{"class":637},"sBMFI","10:23:45.612",[332,640,641],{"class":346}," [auth] User logged in\n",[332,643,644,647,650,653],{"class":334,"line":372},[332,645,646],{"class":637},"10:23:45.613",[332,648,649],{"class":346}," [cache] Cache miss ",[332,651,652],{"class":338},"for",[332,654,655],{"class":346}," key user:42\n",[332,657,658,661,664],{"class":334,"line":379},[332,659,660],{"class":637},"10:23:45.614",[332,662,663],{"class":365}," ERROR",[332,665,666],{"class":346}," [payment] Stripe webhook failed\n",[332,668,669,672],{"class":334,"line":392},[332,670,671],{"class":637},"10:23:45.615",[332,673,674],{"class":346}," [router] Matched route \u002Fapi\u002Fcheckout\n",[476,676,678],{"id":677},"structured-events","Structured Events",[288,680,681],{},"Pass an object for rich, queryable events that flow through the drain pipeline:",[322,683,685],{"className":324,"code":684,"filename":326,"language":327,"meta":328,"style":328},"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",[292,686,687,705,709,777],{"__ignoreMap":328},[332,688,689,691,693,695,697,699,701,703],{"class":334,"line":335},[332,690,339],{"class":338},[332,692,343],{"class":342},[332,694,353],{"class":346},[332,696,356],{"class":342},[332,698,359],{"class":338},[332,700,362],{"class":342},[332,702,366],{"class":365},[332,704,369],{"class":342},[332,706,707],{"class":334,"line":372},[332,708,376],{"emptyLinePlaceholder":375},[332,710,711,713,715,717,719,722,725,727,729,732,734,736,739,741,745,747,750,752,754,757,759,761,764,766,768,771,773,775],{"class":334,"line":379},[332,712,294],{"class":346},[332,714,299],{"class":342},[332,716,303],{"class":382},[332,718,386],{"class":346},[332,720,721],{"class":342},"{",[332,723,724],{"class":395}," action",[332,726,399],{"class":342},[332,728,362],{"class":342},[332,730,731],{"class":365},"user_login",[332,733,414],{"class":342},[332,735,350],{"class":342},[332,737,738],{"class":395}," userId",[332,740,399],{"class":342},[332,742,744],{"class":743},"sbssI"," 42",[332,746,350],{"class":342},[332,748,749],{"class":395}," method",[332,751,399],{"class":342},[332,753,362],{"class":342},[332,755,756],{"class":365},"oauth",[332,758,414],{"class":342},[332,760,350],{"class":342},[332,762,763],{"class":395}," provider",[332,765,399],{"class":342},[332,767,362],{"class":342},[332,769,770],{"class":365},"github",[332,772,414],{"class":342},[332,774,356],{"class":342},[332,776,426],{"class":346},[332,778,779,781,783,785,787,789,791,793,795,798,800,802,805,807,809,812,814,816,819,821,823,826,828,830,833,835,837,840,842,844],{"class":334,"line":392},[332,780,294],{"class":346},[332,782,299],{"class":342},[332,784,575],{"class":382},[332,786,386],{"class":346},[332,788,721],{"class":342},[332,790,724],{"class":395},[332,792,399],{"class":342},[332,794,362],{"class":342},[332,796,797],{"class":365},"sync_failed",[332,799,414],{"class":342},[332,801,350],{"class":342},[332,803,804],{"class":395}," source",[332,806,399],{"class":342},[332,808,362],{"class":342},[332,810,811],{"class":365},"postgres",[332,813,414],{"class":342},[332,815,350],{"class":342},[332,817,818],{"class":395}," target",[332,820,399],{"class":342},[332,822,362],{"class":342},[332,824,825],{"class":365},"s3",[332,827,414],{"class":342},[332,829,350],{"class":342},[332,831,832],{"class":395}," error",[332,834,399],{"class":342},[332,836,362],{"class":342},[332,838,839],{"class":365},"connection_timeout",[332,841,414],{"class":342},[332,843,356],{"class":342},[332,845,426],{"class":346},[322,847,849],{"className":627,"code":848,"filename":629,"language":630,"meta":328,"style":328},"10:23:45.612 INFO [my-app]\n  ├─ action: user_login\n  ├─ userId: 42\n  ├─ method: oauth\n  └─ provider: github\n",[292,850,851,861,872,882,892],{"__ignoreMap":328},[332,852,853,855,858],{"class":334,"line":335},[332,854,638],{"class":637},[332,856,857],{"class":365}," INFO",[332,859,860],{"class":346}," [my-app]\n",[332,862,863,866,869],{"class":334,"line":372},[332,864,865],{"class":637},"  ├─",[332,867,868],{"class":365}," action:",[332,870,871],{"class":365}," user_login\n",[332,873,874,876,879],{"class":334,"line":379},[332,875,865],{"class":637},[332,877,878],{"class":365}," userId:",[332,880,881],{"class":743}," 42\n",[332,883,884,886,889],{"class":334,"line":392},[332,885,865],{"class":637},[332,887,888],{"class":365}," method:",[332,890,891],{"class":365}," oauth\n",[332,893,894,897,900],{"class":334,"line":420},[332,895,896],{"class":637},"  └─",[332,898,899],{"class":365}," provider:",[332,901,902],{"class":365}," github\n",[301,904,905,908,909,912],{"color":303,"icon":13},[309,906,907],{},"Tagged logs"," are optimized for console readability. ",[309,910,911],{},"Structured events"," (object form) produce full wide events that flow through the drain pipeline to external services.",[314,914,916],{"id":915},"log-levels","Log Levels",[918,919,920,936],"table",{},[921,922,923],"thead",{},[924,925,926,930,933],"tr",{},[927,928,929],"th",{},"Level",[927,931,932],{},"Method",[927,934,935],{},"When to use",[937,938,939,954,968,982],"tbody",{},[924,940,941,946,951],{},[942,943,944],"td",{},[292,945,303],{},[942,947,948],{},[292,949,950],{},"log.info()",[942,952,953],{},"Normal operations: startup, shutdown, successful actions",[924,955,956,960,965],{},[942,957,958],{},[292,959,546],{},[942,961,962],{},[292,963,964],{},"log.warn()",[942,966,967],{},"Unexpected but recoverable situations: cache miss, retry, deprecation",[924,969,970,974,979],{},[942,971,972],{},[292,973,575],{},[942,975,976],{},[292,977,978],{},"log.error()",[942,980,981],{},"Failures that need attention: API errors, timeouts, invalid state",[924,983,984,988,993],{},[942,985,986],{},[292,987,604],{},[942,989,990],{},[292,991,992],{},"log.debug()",[942,994,995],{},"Development-only details: SQL queries, intermediate state, routing",[301,997,1000,1002,1003,1006,1007,1010],{"color":998,"icon":999},"warning","i-lucide-lightbulb",[292,1001,992],{}," calls can be stripped from production builds using the ",[1004,1005,101],"a",{"href":102}," or the Nuxt module's ",[292,1008,1009],{},"strip"," option.",[314,1012,1014],{"id":1013},"common-patterns","Common Patterns",[476,1016,1018],{"id":1017},"application-lifecycle","Application Lifecycle",[322,1020,1022],{"className":324,"code":1021,"filename":326,"language":327,"meta":328,"style":328},"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",[292,1023,1024,1042,1046,1073,1138],{"__ignoreMap":328},[332,1025,1026,1028,1030,1032,1034,1036,1038,1040],{"class":334,"line":335},[332,1027,339],{"class":338},[332,1029,343],{"class":342},[332,1031,353],{"class":346},[332,1033,356],{"class":342},[332,1035,359],{"class":338},[332,1037,362],{"class":342},[332,1039,366],{"class":365},[332,1041,369],{"class":342},[332,1043,1044],{"class":334,"line":372},[332,1045,376],{"emptyLinePlaceholder":375},[332,1047,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1069,1071],{"class":334,"line":379},[332,1049,294],{"class":346},[332,1051,299],{"class":342},[332,1053,303],{"class":382},[332,1055,386],{"class":346},[332,1057,414],{"class":342},[332,1059,447],{"class":365},[332,1061,414],{"class":342},[332,1063,350],{"class":342},[332,1065,362],{"class":342},[332,1067,1068],{"class":365},"Starting server on port 3000",[332,1070,414],{"class":342},[332,1072,426],{"class":346},[332,1074,1075,1077,1079,1081,1083,1085,1087,1089,1091,1094,1096,1098,1101,1103,1105,1108,1110,1112,1115,1117,1119,1122,1124,1126,1129,1131,1134,1136],{"class":334,"line":392},[332,1076,294],{"class":346},[332,1078,299],{"class":342},[332,1080,303],{"class":382},[332,1082,386],{"class":346},[332,1084,721],{"class":342},[332,1086,724],{"class":395},[332,1088,399],{"class":342},[332,1090,362],{"class":342},[332,1092,1093],{"class":365},"db_connected",[332,1095,414],{"class":342},[332,1097,350],{"class":342},[332,1099,1100],{"class":395}," host",[332,1102,399],{"class":342},[332,1104,362],{"class":342},[332,1106,1107],{"class":365},"localhost",[332,1109,414],{"class":342},[332,1111,350],{"class":342},[332,1113,1114],{"class":395}," database",[332,1116,399],{"class":342},[332,1118,362],{"class":342},[332,1120,1121],{"class":365},"mydb",[332,1123,414],{"class":342},[332,1125,350],{"class":342},[332,1127,1128],{"class":395}," pool",[332,1130,399],{"class":342},[332,1132,1133],{"class":743}," 10",[332,1135,356],{"class":342},[332,1137,426],{"class":346},[332,1139,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1161,1163],{"class":334,"line":420},[332,1141,294],{"class":346},[332,1143,299],{"class":342},[332,1145,303],{"class":382},[332,1147,386],{"class":346},[332,1149,414],{"class":342},[332,1151,447],{"class":365},[332,1153,414],{"class":342},[332,1155,350],{"class":342},[332,1157,362],{"class":342},[332,1159,1160],{"class":365},"Ready to accept connections",[332,1162,414],{"class":342},[332,1164,426],{"class":346},[476,1166,1168],{"id":1167},"background-tasks","Background Tasks",[322,1170,1173],{"className":324,"code":1171,"filename":1172,"language":327,"meta":328,"style":328},"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",[292,1174,1175,1193,1197,1252],{"__ignoreMap":328},[332,1176,1177,1179,1181,1183,1185,1187,1189,1191],{"class":334,"line":335},[332,1178,339],{"class":338},[332,1180,343],{"class":342},[332,1182,353],{"class":346},[332,1184,356],{"class":342},[332,1186,359],{"class":338},[332,1188,362],{"class":342},[332,1190,366],{"class":365},[332,1192,369],{"class":342},[332,1194,1195],{"class":334,"line":372},[332,1196,376],{"emptyLinePlaceholder":375},[332,1198,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1225,1227,1229,1232,1234,1236,1239,1241,1243,1246,1248,1250],{"class":334,"line":379},[332,1200,294],{"class":346},[332,1202,299],{"class":342},[332,1204,303],{"class":382},[332,1206,386],{"class":346},[332,1208,721],{"class":342},[332,1210,724],{"class":395},[332,1212,399],{"class":342},[332,1214,362],{"class":342},[332,1216,1217],{"class":365},"cron_started",[332,1219,414],{"class":342},[332,1221,350],{"class":342},[332,1223,1224],{"class":395}," job",[332,1226,399],{"class":342},[332,1228,362],{"class":342},[332,1230,1231],{"class":365},"cleanup",[332,1233,414],{"class":342},[332,1235,350],{"class":342},[332,1237,1238],{"class":395}," schedule",[332,1240,399],{"class":342},[332,1242,362],{"class":342},[332,1244,1245],{"class":365},"0 *\u002F6 * * *",[332,1247,414],{"class":342},[332,1249,356],{"class":342},[332,1251,426],{"class":346},[332,1253,1254,1256,1258,1260,1262,1264,1266,1268,1270,1273,1275,1277,1279,1281,1283,1285,1287,1289,1292,1294,1296,1298,1301,1303,1306,1308],{"class":334,"line":392},[332,1255,294],{"class":346},[332,1257,299],{"class":342},[332,1259,303],{"class":382},[332,1261,386],{"class":346},[332,1263,721],{"class":342},[332,1265,724],{"class":395},[332,1267,399],{"class":342},[332,1269,362],{"class":342},[332,1271,1272],{"class":365},"cron_completed",[332,1274,414],{"class":342},[332,1276,350],{"class":342},[332,1278,1224],{"class":395},[332,1280,399],{"class":342},[332,1282,362],{"class":342},[332,1284,1231],{"class":365},[332,1286,414],{"class":342},[332,1288,350],{"class":342},[332,1290,1291],{"class":395}," deleted",[332,1293,399],{"class":342},[332,1295,744],{"class":743},[332,1297,350],{"class":342},[332,1299,1300],{"class":395}," duration",[332,1302,399],{"class":342},[332,1304,1305],{"class":743}," 1200",[332,1307,356],{"class":342},[332,1309,426],{"class":346},[476,1311,1313],{"id":1312},"utility-functions","Utility Functions",[322,1315,1318],{"className":324,"code":1316,"filename":1317,"language":327,"meta":328,"style":328},"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",[292,1319,1320,1338,1342,1368,1424,1428,1451,1505,1511,1517],{"__ignoreMap":328},[332,1321,1322,1324,1326,1328,1330,1332,1334,1336],{"class":334,"line":335},[332,1323,339],{"class":338},[332,1325,343],{"class":342},[332,1327,353],{"class":346},[332,1329,356],{"class":342},[332,1331,359],{"class":338},[332,1333,362],{"class":342},[332,1335,366],{"class":365},[332,1337,369],{"class":342},[332,1339,1340],{"class":334,"line":372},[332,1341,376],{"emptyLinePlaceholder":375},[332,1343,1344,1348,1351,1353,1357,1359,1362,1365],{"class":334,"line":379},[332,1345,1347],{"class":1346},"spNyl","function",[332,1349,1350],{"class":382}," processWebhook",[332,1352,386],{"class":342},[332,1354,1356],{"class":1355},"sHdIc","payload",[332,1358,399],{"class":342},[332,1360,1361],{"class":637}," WebhookPayload",[332,1363,1364],{"class":342},")",[332,1366,1367],{"class":342}," {\n",[332,1369,1370,1373,1375,1377,1379,1381,1383,1385,1387,1390,1392,1394,1397,1399,1402,1404,1407,1409,1411,1413,1415,1417,1420,1422],{"class":334,"line":392},[332,1371,1372],{"class":346},"  log",[332,1374,299],{"class":342},[332,1376,303],{"class":382},[332,1378,386],{"class":395},[332,1380,721],{"class":342},[332,1382,724],{"class":395},[332,1384,399],{"class":342},[332,1386,362],{"class":342},[332,1388,1389],{"class":365},"webhook_received",[332,1391,414],{"class":342},[332,1393,350],{"class":342},[332,1395,1396],{"class":395}," type",[332,1398,399],{"class":342},[332,1400,1401],{"class":346}," payload",[332,1403,299],{"class":342},[332,1405,1406],{"class":346},"type",[332,1408,350],{"class":342},[332,1410,804],{"class":395},[332,1412,399],{"class":342},[332,1414,1401],{"class":346},[332,1416,299],{"class":342},[332,1418,1419],{"class":346},"source",[332,1421,356],{"class":342},[332,1423,426],{"class":395},[332,1425,1426],{"class":334,"line":420},[332,1427,376],{"emptyLinePlaceholder":375},[332,1429,1430,1433,1436,1439,1442,1444,1446,1449],{"class":334,"line":429},[332,1431,1432],{"class":338},"  if",[332,1434,1435],{"class":395}," (",[332,1437,1438],{"class":342},"!",[332,1440,1441],{"class":382},"isValid",[332,1443,386],{"class":395},[332,1445,1356],{"class":346},[332,1447,1448],{"class":395},")) ",[332,1450,389],{"class":342},[332,1452,1453,1456,1458,1460,1462,1464,1466,1468,1470,1473,1475,1477,1479,1481,1483,1485,1487,1489,1492,1494,1496,1499,1501,1503],{"class":334,"line":434},[332,1454,1455],{"class":346},"    log",[332,1457,299],{"class":342},[332,1459,546],{"class":382},[332,1461,386],{"class":395},[332,1463,721],{"class":342},[332,1465,724],{"class":395},[332,1467,399],{"class":342},[332,1469,362],{"class":342},[332,1471,1472],{"class":365},"webhook_invalid",[332,1474,414],{"class":342},[332,1476,350],{"class":342},[332,1478,1396],{"class":395},[332,1480,399],{"class":342},[332,1482,1401],{"class":346},[332,1484,299],{"class":342},[332,1486,1406],{"class":346},[332,1488,350],{"class":342},[332,1490,1491],{"class":395}," reason",[332,1493,399],{"class":342},[332,1495,362],{"class":342},[332,1497,1498],{"class":365},"missing_signature",[332,1500,414],{"class":342},[332,1502,356],{"class":342},[332,1504,426],{"class":395},[332,1506,1508],{"class":334,"line":1507},8,[332,1509,1510],{"class":338},"    return\n",[332,1512,1514],{"class":334,"line":1513},9,[332,1515,1516],{"class":342},"  }\n",[332,1518,1520],{"class":334,"line":1519},10,[332,1521,1522],{"class":342},"}\n",[314,1524,1526],{"id":1525},"drain-integration","Drain Integration",[288,1528,1529,1530,1533],{},"When using the object form, events are sent through the ",[1004,1531,1532],{"href":194},"drain pipeline"," just like wide events:",[322,1535,1537],{"className":324,"code":1536,"filename":326,"language":327,"meta":328,"style":328},"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",[292,1538,1539,1561,1581,1585,1593,1613,1628,1634,1638],{"__ignoreMap":328},[332,1540,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559],{"class":334,"line":335},[332,1542,339],{"class":338},[332,1544,343],{"class":342},[332,1546,347],{"class":346},[332,1548,350],{"class":342},[332,1550,353],{"class":346},[332,1552,356],{"class":342},[332,1554,359],{"class":338},[332,1556,362],{"class":342},[332,1558,366],{"class":365},[332,1560,369],{"class":342},[332,1562,1563,1565,1567,1570,1572,1574,1576,1579],{"class":334,"line":372},[332,1564,339],{"class":338},[332,1566,343],{"class":342},[332,1568,1569],{"class":346}," createAxiomDrain",[332,1571,356],{"class":342},[332,1573,359],{"class":338},[332,1575,362],{"class":342},[332,1577,1578],{"class":365},"evlog\u002Faxiom",[332,1580,369],{"class":342},[332,1582,1583],{"class":334,"line":379},[332,1584,376],{"emptyLinePlaceholder":375},[332,1586,1587,1589,1591],{"class":334,"line":392},[332,1588,383],{"class":382},[332,1590,386],{"class":346},[332,1592,389],{"class":342},[332,1594,1595,1597,1599,1601,1603,1605,1607,1609,1611],{"class":334,"line":420},[332,1596,396],{"class":395},[332,1598,399],{"class":342},[332,1600,343],{"class":342},[332,1602,404],{"class":395},[332,1604,399],{"class":342},[332,1606,362],{"class":342},[332,1608,411],{"class":365},[332,1610,414],{"class":342},[332,1612,417],{"class":342},[332,1614,1615,1618,1620,1622,1625],{"class":334,"line":429},[332,1616,1617],{"class":395},"  drain",[332,1619,399],{"class":342},[332,1621,1569],{"class":382},[332,1623,1624],{"class":346},"()",[332,1626,1627],{"class":342},",\n",[332,1629,1630,1632],{"class":334,"line":434},[332,1631,423],{"class":342},[332,1633,426],{"class":346},[332,1635,1636],{"class":334,"line":1507},[332,1637,376],{"emptyLinePlaceholder":375},[332,1639,1640,1642,1644,1646,1648,1650,1652,1654,1656,1659,1661,1663,1666,1668,1670,1673,1675,1677,1680,1682,1684,1687,1689,1691],{"class":334,"line":1513},[332,1641,294],{"class":346},[332,1643,299],{"class":342},[332,1645,303],{"class":382},[332,1647,386],{"class":346},[332,1649,721],{"class":342},[332,1651,724],{"class":395},[332,1653,399],{"class":342},[332,1655,362],{"class":342},[332,1657,1658],{"class":365},"deploy",[332,1660,414],{"class":342},[332,1662,350],{"class":342},[332,1664,1665],{"class":395}," version",[332,1667,399],{"class":342},[332,1669,362],{"class":342},[332,1671,1672],{"class":365},"1.2.3",[332,1674,414],{"class":342},[332,1676,350],{"class":342},[332,1678,1679],{"class":395}," region",[332,1681,399],{"class":342},[332,1683,362],{"class":342},[332,1685,1686],{"class":365},"us-east-1",[332,1688,414],{"class":342},[332,1690,356],{"class":342},[332,1692,426],{"class":346},[314,1694,1696],{"id":1695},"when-to-upgrade-to-createlogger","When to Upgrade to createLogger",[288,1698,1699,1700,1702,1703,1706,1707,399],{},"Use ",[292,1701,294],{}," when each event is self-contained. When you need to ",[309,1704,1705],{},"accumulate context"," across multiple steps of an operation, switch to ",[1004,1708,1709],{"href":47},[292,1710,1711],{},"createLogger",[322,1713,1716],{"className":324,"code":1714,"filename":1715,"language":327,"meta":328,"style":328},"import { log, createLogger } from 'evlog'\n\n\u002F\u002F log: each call is independent\nlog.info({ action: 'sync_started', source: 'postgres' })\nlog.info({ action: 'sync_completed', records: 150 })\n\n\u002F\u002F createLogger: accumulate context, emit once\nconst syncLog = createLogger({ source: 'postgres' })\nsyncLog.set({ records: 150 })\nsyncLog.set({ status: 'complete' })\nsyncLog.emit()\n","scripts\u002Fsync-data.ts",[292,1717,1718,1741,1745,1751,1790,1827,1831,1836,1867,1891,1919],{"__ignoreMap":328},[332,1719,1720,1722,1724,1726,1728,1731,1733,1735,1737,1739],{"class":334,"line":335},[332,1721,339],{"class":338},[332,1723,343],{"class":342},[332,1725,353],{"class":346},[332,1727,350],{"class":342},[332,1729,1730],{"class":346}," createLogger",[332,1732,356],{"class":342},[332,1734,359],{"class":338},[332,1736,362],{"class":342},[332,1738,366],{"class":365},[332,1740,369],{"class":342},[332,1742,1743],{"class":334,"line":372},[332,1744,376],{"emptyLinePlaceholder":375},[332,1746,1747],{"class":334,"line":379},[332,1748,1750],{"class":1749},"sHwdD","\u002F\u002F log: each call is independent\n",[332,1752,1753,1755,1757,1759,1761,1763,1765,1767,1769,1772,1774,1776,1778,1780,1782,1784,1786,1788],{"class":334,"line":392},[332,1754,294],{"class":346},[332,1756,299],{"class":342},[332,1758,303],{"class":382},[332,1760,386],{"class":346},[332,1762,721],{"class":342},[332,1764,724],{"class":395},[332,1766,399],{"class":342},[332,1768,362],{"class":342},[332,1770,1771],{"class":365},"sync_started",[332,1773,414],{"class":342},[332,1775,350],{"class":342},[332,1777,804],{"class":395},[332,1779,399],{"class":342},[332,1781,362],{"class":342},[332,1783,811],{"class":365},[332,1785,414],{"class":342},[332,1787,356],{"class":342},[332,1789,426],{"class":346},[332,1791,1792,1794,1796,1798,1800,1802,1804,1806,1808,1811,1813,1815,1818,1820,1823,1825],{"class":334,"line":420},[332,1793,294],{"class":346},[332,1795,299],{"class":342},[332,1797,303],{"class":382},[332,1799,386],{"class":346},[332,1801,721],{"class":342},[332,1803,724],{"class":395},[332,1805,399],{"class":342},[332,1807,362],{"class":342},[332,1809,1810],{"class":365},"sync_completed",[332,1812,414],{"class":342},[332,1814,350],{"class":342},[332,1816,1817],{"class":395}," records",[332,1819,399],{"class":342},[332,1821,1822],{"class":743}," 150",[332,1824,356],{"class":342},[332,1826,426],{"class":346},[332,1828,1829],{"class":334,"line":429},[332,1830,376],{"emptyLinePlaceholder":375},[332,1832,1833],{"class":334,"line":434},[332,1834,1835],{"class":1749},"\u002F\u002F createLogger: accumulate context, emit once\n",[332,1837,1838,1841,1844,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865],{"class":334,"line":1507},[332,1839,1840],{"class":1346},"const",[332,1842,1843],{"class":346}," syncLog ",[332,1845,1846],{"class":342},"=",[332,1848,1730],{"class":382},[332,1850,386],{"class":346},[332,1852,721],{"class":342},[332,1854,804],{"class":395},[332,1856,399],{"class":342},[332,1858,362],{"class":342},[332,1860,811],{"class":365},[332,1862,414],{"class":342},[332,1864,356],{"class":342},[332,1866,426],{"class":346},[332,1868,1869,1872,1874,1877,1879,1881,1883,1885,1887,1889],{"class":334,"line":1513},[332,1870,1871],{"class":346},"syncLog",[332,1873,299],{"class":342},[332,1875,1876],{"class":382},"set",[332,1878,386],{"class":346},[332,1880,721],{"class":342},[332,1882,1817],{"class":395},[332,1884,399],{"class":342},[332,1886,1822],{"class":743},[332,1888,356],{"class":342},[332,1890,426],{"class":346},[332,1892,1893,1895,1897,1899,1901,1903,1906,1908,1910,1913,1915,1917],{"class":334,"line":1519},[332,1894,1871],{"class":346},[332,1896,299],{"class":342},[332,1898,1876],{"class":382},[332,1900,386],{"class":346},[332,1902,721],{"class":342},[332,1904,1905],{"class":395}," status",[332,1907,399],{"class":342},[332,1909,362],{"class":342},[332,1911,1912],{"class":365},"complete",[332,1914,414],{"class":342},[332,1916,356],{"class":342},[332,1918,426],{"class":346},[332,1920,1922,1924,1926,1929],{"class":334,"line":1921},11,[332,1923,1871],{"class":346},[332,1925,299],{"class":342},[332,1927,1928],{"class":382},"emit",[332,1930,1931],{"class":346},"()\n",[314,1933,1935],{"id":1934},"next-steps","Next Steps",[1937,1938,1939,1945,1961,1969],"ul",{},[1940,1941,1942,1944],"li",{},[1004,1943,46],{"href":47},": Accumulate context and emit comprehensive events",[1940,1946,1947,1949,1950,1953,1954,1957,1958],{},[1004,1948,51],{"href":52},": Throw errors with ",[292,1951,1952],{},"why",", ",[292,1955,1956],{},"fix",", and ",[292,1959,1960],{},"link",[1940,1962,1963,1965,1966,1968],{},[1004,1964,76],{"href":77},": All ",[292,1967,383],{}," options",[1940,1970,1971,1973],{},[1004,1972,189],{"href":194},": Send events to Axiom, Sentry, PostHog, and more",[1975,1976,1977],"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}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":328,"searchDepth":372,"depth":372,"links":1979},[1980,1981,1985,1986,1991,1992,1993],{"id":316,"depth":372,"text":317},{"id":473,"depth":372,"text":474,"children":1982},[1983,1984],{"id":478,"depth":379,"text":479},{"id":677,"depth":379,"text":678},{"id":915,"depth":372,"text":916},{"id":1013,"depth":372,"text":1014,"children":1987},[1988,1989,1990],{"id":1017,"depth":379,"text":1018},{"id":1167,"depth":379,"text":1168},{"id":1312,"depth":379,"text":1313},{"id":1525,"depth":372,"text":1526},{"id":1695,"depth":372,"text":1696},{"id":1934,"depth":372,"text":1935},"Structured logging for everyday use. Replace console.log with log.info, log.error, log.warn, and log.debug. Fire-and-forget events with pretty output in dev and JSON in production.","md",[1997,2000],{"label":46,"icon":49,"to":47,"color":1998,"variant":1999},"neutral","subtle",{"label":76,"icon":79,"to":77,"color":1998,"variant":1999},{},{"icon":44},{"title":41,"description":1994},"4Cg68334qiOW89KKBf-1LIs_xQv9rMK9_7OJqYebeV4",[2006,2008],{"title":36,"path":37,"stem":38,"description":2007,"icon":39,"children":-1},"evlog gives you three ways to log. Simple one-liners, wide events that accumulate context, and auto-managed request logging. Choose the right one for your use case.",{"title":46,"path":47,"stem":48,"description":2009,"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.",1775319541752]