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