[{"data":1,"prerenderedAt":856},["ShallowReactive",2],{"navigation_docs":3,"-nuxthub-retention":297,"-nuxthub-retention-surround":852},[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":299,"body":300,"description":842,"extension":843,"links":844,"meta":848,"navigation":849,"path":294,"seo":850,"stem":295,"__hash__":851},"docs\u002F7.nuxthub\u002F2.retention.md","Retention & Cleanup",{"type":301,"value":302,"toc":830},"minimark",[303,311,315,322,446,451,454,524,528,535,605,616,620,623,640,644,651,680,683,687,698,785,791,795,802,806,826],[304,305,306,310],"p",{},[307,308,309],"code",{},"@evlog\u002Fnuxthub"," automatically deletes old events based on your retention policy. No manual cleanup needed.",[312,313,81],"h2",{"id":314},"configuration",[304,316,317,318,321],{},"Set the retention period in your ",[307,319,320],{},"nuxt.config.ts",":",[323,324,329],"pre",{"className":325,"code":326,"filename":320,"language":327,"meta":328,"style":328},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxthub\u002Fcore', '@evlog\u002Fnuxthub'],\n\n  evlog: {\n    retention: '7d', \u002F\u002F default\n  },\n})\n","typescript","",[307,330,331,355,392,399,410,431,437],{"__ignoreMap":328},[332,333,336,340,343,347,351],"span",{"class":334,"line":335},"line",1,[332,337,339],{"class":338},"s7zQu","export",[332,341,342],{"class":338}," default",[332,344,346],{"class":345},"s2Zo4"," defineNuxtConfig",[332,348,350],{"class":349},"sTEyZ","(",[332,352,354],{"class":353},"sMK4o","{\n",[332,356,358,362,364,367,370,374,376,379,382,384,386,389],{"class":334,"line":357},2,[332,359,361],{"class":360},"swJcz","  modules",[332,363,321],{"class":353},[332,365,366],{"class":349}," [",[332,368,369],{"class":353},"'",[332,371,373],{"class":372},"sfazB","@nuxthub\u002Fcore",[332,375,369],{"class":353},[332,377,378],{"class":353},",",[332,380,381],{"class":353}," '",[332,383,309],{"class":372},[332,385,369],{"class":353},[332,387,388],{"class":349},"]",[332,390,391],{"class":353},",\n",[332,393,395],{"class":334,"line":394},3,[332,396,398],{"emptyLinePlaceholder":397},true,"\n",[332,400,402,405,407],{"class":334,"line":401},4,[332,403,404],{"class":360},"  evlog",[332,406,321],{"class":353},[332,408,409],{"class":353}," {\n",[332,411,413,416,418,420,423,425,427],{"class":334,"line":412},5,[332,414,415],{"class":360},"    retention",[332,417,321],{"class":353},[332,419,381],{"class":353},[332,421,422],{"class":372},"7d",[332,424,369],{"class":353},[332,426,378],{"class":353},[332,428,430],{"class":429},"sHwdD"," \u002F\u002F default\n",[332,432,434],{"class":334,"line":433},6,[332,435,436],{"class":353},"  },\n",[332,438,440,443],{"class":334,"line":439},7,[332,441,442],{"class":353},"}",[332,444,445],{"class":349},")\n",[447,448,450],"h3",{"id":449},"retention-format","Retention Format",[304,452,453],{},"The retention value is a number followed by a unit:",[455,456,457,473],"table",{},[458,459,460],"thead",{},[461,462,463,467,470],"tr",{},[464,465,466],"th",{},"Unit",[464,468,469],{},"Description",[464,471,472],{},"Example",[474,475,476,492,508],"tbody",{},[461,477,478,484,487],{},[479,480,481],"td",{},[307,482,483],{},"d",[479,485,486],{},"Days",[479,488,489,491],{},[307,490,422],{}," = 7 days",[461,493,494,499,502],{},[479,495,496],{},[307,497,498],{},"h",[479,500,501],{},"Hours",[479,503,504,507],{},[307,505,506],{},"24h"," = 24 hours",[461,509,510,515,518],{},[479,511,512],{},[307,513,514],{},"m",[479,516,517],{},"Minutes",[479,519,520,523],{},[307,521,522],{},"60m"," = 60 minutes",[312,525,527],{"id":526},"how-cleanup-works","How Cleanup Works",[304,529,530,531,534],{},"The module registers a Nitro scheduled task (",[307,532,533],{},"evlog:cleanup",") that runs on a cron schedule derived from your retention value. The cron frequency is set to roughly half the retention period:",[455,536,537,548],{},[458,538,539],{},[461,540,541,543,546],{},[464,542,293],{},[464,544,545],{},"Cron Schedule",[464,547,469],{},[474,549,550,564,578,592],{},[461,551,552,556,561],{},[479,553,554],{},[307,555,522],{},[479,557,558],{},[307,559,560],{},"*\u002F30 * * * *",[479,562,563],{},"Every 30 minutes",[461,565,566,570,575],{},[479,567,568],{},[307,569,506],{},[479,571,572],{},[307,573,574],{},"0 *\u002F12 * * *",[479,576,577],{},"Every 12 hours",[461,579,580,584,589],{},[479,581,582],{},[307,583,422],{},[479,585,586],{},[307,587,588],{},"0 3 * * *",[479,590,591],{},"Daily at 3:00 AM",[461,593,594,599,603],{},[479,595,596],{},[307,597,598],{},"30d",[479,600,601],{},[307,602,588],{},[479,604,591],{},[304,606,607,608,611,612,615],{},"The cleanup task deletes all rows in ",[307,609,610],{},"evlog_events"," where ",[307,613,614],{},"created_at"," is older than the retention period.",[312,617,619],{"id":618},"manual-cleanup","Manual Cleanup",[304,621,622],{},"You can trigger cleanup manually via the API endpoint:",[323,624,629],{"className":625,"code":626,"filename":627,"language":628,"meta":328,"style":328},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl https:\u002F\u002Fyour-app.com\u002Fapi\u002F_cron\u002Fevlog-cleanup\n","Terminal","bash",[307,630,631],{"__ignoreMap":328},[332,632,633,637],{"class":334,"line":335},[332,634,636],{"class":635},"sBMFI","curl",[332,638,639],{"class":372}," https:\u002F\u002Fyour-app.com\u002Fapi\u002F_cron\u002Fevlog-cleanup\n",[447,641,643],{"id":642},"cron-secret-protection","Cron Secret Protection",[304,645,646,647,650],{},"If the ",[307,648,649],{},"CRON_SECRET"," environment variable is set, the endpoint requires a Bearer token:",[323,652,654],{"className":625,"code":653,"filename":627,"language":628,"meta":328,"style":328},"curl -H \"Authorization: Bearer your-secret\" \\\n  https:\u002F\u002Fyour-app.com\u002Fapi\u002F_cron\u002Fevlog-cleanup\n",[307,655,656,675],{"__ignoreMap":328},[332,657,658,660,663,666,669,672],{"class":334,"line":335},[332,659,636],{"class":635},[332,661,662],{"class":372}," -H",[332,664,665],{"class":353}," \"",[332,667,668],{"class":372},"Authorization: Bearer your-secret",[332,670,671],{"class":353},"\"",[332,673,674],{"class":349}," \\\n",[332,676,677],{"class":334,"line":357},[332,678,679],{"class":372},"  https:\u002F\u002Fyour-app.com\u002Fapi\u002F_cron\u002Fevlog-cleanup\n",[304,681,682],{},"This is recommended for production deployments to prevent unauthorized cleanup triggers.",[312,684,686],{"id":685},"vercel-cron","Vercel Cron",[304,688,689,690,693,694,697],{},"When installing the module with ",[307,691,692],{},"nuxi module add",", you'll be prompted to create a ",[307,695,696],{},"vercel.json"," with the appropriate cron schedule:",[323,699,703],{"className":700,"code":701,"filename":696,"language":702,"meta":328,"style":328},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"crons\": [\n    {\n      \"path\": \"\u002Fapi\u002F_cron\u002Fevlog-cleanup\",\n      \"schedule\": \"0 3 * * *\"\n    }\n  ]\n}\n","json",[307,704,705,709,725,730,751,769,774,779],{"__ignoreMap":328},[332,706,707],{"class":334,"line":335},[332,708,354],{"class":353},[332,710,711,714,718,720,722],{"class":334,"line":357},[332,712,713],{"class":353},"  \"",[332,715,717],{"class":716},"spNyl","crons",[332,719,671],{"class":353},[332,721,321],{"class":353},[332,723,724],{"class":353}," [\n",[332,726,727],{"class":334,"line":394},[332,728,729],{"class":353},"    {\n",[332,731,732,735,738,740,742,744,747,749],{"class":334,"line":401},[332,733,734],{"class":353},"      \"",[332,736,737],{"class":635},"path",[332,739,671],{"class":353},[332,741,321],{"class":353},[332,743,665],{"class":353},[332,745,746],{"class":372},"\u002Fapi\u002F_cron\u002Fevlog-cleanup",[332,748,671],{"class":353},[332,750,391],{"class":353},[332,752,753,755,758,760,762,764,766],{"class":334,"line":412},[332,754,734],{"class":353},[332,756,757],{"class":635},"schedule",[332,759,671],{"class":353},[332,761,321],{"class":353},[332,763,665],{"class":353},[332,765,588],{"class":372},[332,767,768],{"class":353},"\"\n",[332,770,771],{"class":334,"line":433},[332,772,773],{"class":353},"    }\n",[332,775,776],{"class":334,"line":439},[332,777,778],{"class":353},"  ]\n",[332,780,782],{"class":334,"line":781},8,[332,783,784],{"class":353},"}\n",[304,786,787,788,790],{},"On Vercel, the ",[307,789,649],{}," environment variable is automatically set and validated.",[312,792,794],{"id":793},"cloudflare-other-platforms","Cloudflare & Other Platforms",[304,796,797,798,801],{},"On Cloudflare Workers and other platforms, the Nitro scheduled task handles cleanup automatically without any additional cron configuration. The task is registered with ",[307,799,800],{},"experimental.tasks"," enabled in the Nitro config.",[312,803,805],{"id":804},"next-steps","Next Steps",[807,808,809,816,821],"ul",{},[810,811,812,815],"li",{},[813,814,36],"a",{"href":289}," - Installation and setup",[810,817,818,820],{},[813,819,204],{"href":209}," - Send logs to external services alongside NuxtHub storage",[810,822,823,825],{},[813,824,218],{"href":219}," - Batch events for better database performance",[827,828,829],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":328,"searchDepth":357,"depth":357,"links":831},[832,835,836,839,840,841],{"id":314,"depth":357,"text":81,"children":833},[834],{"id":449,"depth":394,"text":450},{"id":526,"depth":357,"text":527},{"id":618,"depth":357,"text":619,"children":837},[838],{"id":642,"depth":394,"text":643},{"id":685,"depth":357,"text":686},{"id":793,"depth":357,"text":794},{"id":804,"depth":357,"text":805},"Configure how long logs are kept in NuxtHub and how they are automatically cleaned up with scheduled tasks, cron jobs, and retention policies.","md",[845],{"label":36,"icon":291,"to":289,"color":846,"variant":847},"neutral","subtle",{},{"title":293,"icon":296},{"title":299,"description":842},"nYSAmQPl8D0TzOMxJLJ_Wh9ZzwT0QCeVwLygQ6KT_P0",[853,855],{"title":36,"path":289,"stem":290,"description":854,"icon":291,"children":-1},"Self-hosted log retention for evlog using NuxtHub database storage. Store, query, and automatically clean up your structured logs with zero external dependencies.",null,1776700924350]