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