47 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|