Files
XplorePlane/XP.Common/Dump/Configs/ConfigLoader.cs
T

47 lines
2.2 KiB
C#

using System.Configuration;
namespace XP.Common.Dump.Configs
{
/// <summary>
/// Dump 配置加载器,从 App.config 读取 Dump 相关配置项 | Dump configuration loader, reads dump-related configuration from App.config
/// </summary>
public static class ConfigLoader
{
/// <summary>
/// 配置键前缀 | Configuration key prefix
/// </summary>
private const string KeyPrefix = "Dump:";
/// <summary>
/// 从 App.config 加载 Dump 配置 | Load Dump configuration from App.config
/// </summary>
/// <returns>Dump 配置实体,缺失或无效配置项使用默认值 | Dump configuration entity, uses default values for missing or invalid items</returns>
public static DumpConfig LoadDumpConfig()
{
var config = new DumpConfig();
// 加载存储路径 | Load storage path
var storagePath = ConfigurationManager.AppSettings[KeyPrefix + "StoragePath"];
if (!string.IsNullOrEmpty(storagePath)) config.StoragePath = storagePath;
// 加载是否启用定时触发 | Load enable scheduled dump
var enableScheduled = ConfigurationManager.AppSettings[KeyPrefix + "EnableScheduledDump"];
if (bool.TryParse(enableScheduled, out var enabled)) config.EnableScheduledDump = enabled;
// 加载定时触发间隔 | Load scheduled interval
var interval = ConfigurationManager.AppSettings[KeyPrefix + "ScheduledIntervalMinutes"];
if (int.TryParse(interval, out var min) && min > 0) config.ScheduledIntervalMinutes = min;
// 加载 Mini Dump 文件大小上限 | Load Mini Dump size limit
var sizeLimit = ConfigurationManager.AppSettings[KeyPrefix + "MiniDumpSizeLimitMB"];
if (long.TryParse(sizeLimit, out var size) && size > 0) config.MiniDumpSizeLimitMB = size;
// 加载文件保留天数 | Load retention days
var retentionDays = ConfigurationManager.AppSettings[KeyPrefix + "RetentionDays"];
if (int.TryParse(retentionDays, out var days) && days > 0) config.RetentionDays = days;
return config;
}
}
}