namespace MiGu.Server.Configs; /// /// 日志清理与磁盘告警(system.logCleanup)。字段对齐 Simple3 LogCleanupOptions。 /// public sealed class LogCleanupOptions { /// 是否启用后台自动清理。关闭后仅「立即清理」可手动触发。默认 true。 public bool Enabled { get; set; } = true; /// 保留天数:删除 log/ 下 LastWriteTime 早于「现在 − N 天」的 *.log。默认 30,最小 1。 public int RetentionDays { get; set; } = 30; /// 后台清理间隔(小时)。默认 24;<= 0 归一为 1。 public int CheckIntervalHours { get; set; } = 24; /// 启动时先执行一次清理。默认 true。 public bool RunOnStartup { get; set; } = true; /// 是否启用磁盘剩余空间不足告警。默认 true。 public bool DiskAlertEnabled { get; set; } = true; /// 日志所在盘剩余低于该值(GB)时告警。默认 5。 public double DiskFreeAlertGB { get; set; } = 5; /// 磁盘检测间隔(分钟)。默认 30;<= 0 归一为 30。 public int DiskCheckIntervalMinutes { get; set; } = 30; public static LogCleanupOptions CreateDefaults() => new(); public LogCleanupOptions Clamp() { RetentionDays = Math.Clamp(RetentionDays, 1, 3650); CheckIntervalHours = Math.Max(1, CheckIntervalHours); if (DiskFreeAlertGB <= 0) DiskFreeAlertGB = 5; DiskCheckIntervalMinutes = DiskCheckIntervalMinutes <= 0 ? 30 : DiskCheckIntervalMinutes; return this; } }