将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
using System.Configuration;
|
||||
using XP.Common.Configs;
|
||||
using XP.Common.Dump.Configs;
|
||||
|
||||
namespace XP.Common.Helpers
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用配置加载工具(读取App.config)
|
||||
/// </summary>
|
||||
public static class ConfigLoader
|
||||
{
|
||||
/// <summary>
|
||||
/// 加载Serilog配置
|
||||
/// </summary>
|
||||
public static SerilogConfig LoadSerilogConfig()
|
||||
{
|
||||
var config = new SerilogConfig();
|
||||
|
||||
var logPath = ConfigurationManager.AppSettings["Serilog:LogPath"];
|
||||
if (!string.IsNullOrEmpty(logPath)) config.LogPath = logPath;
|
||||
|
||||
var minLevel = ConfigurationManager.AppSettings["Serilog:MinimumLevel"];
|
||||
if (!string.IsNullOrEmpty(minLevel)) config.MinimumLevel = minLevel;
|
||||
|
||||
var enableConsole = ConfigurationManager.AppSettings["Serilog:EnableConsole"];
|
||||
if (bool.TryParse(enableConsole, out var console)) config.EnableConsole = console;
|
||||
|
||||
var rollingInterval = ConfigurationManager.AppSettings["Serilog:RollingInterval"];
|
||||
if (!string.IsNullOrEmpty(rollingInterval)) config.RollingInterval = rollingInterval;
|
||||
|
||||
var fileSize = ConfigurationManager.AppSettings["Serilog:FileSizeLimitMB"];
|
||||
if (long.TryParse(fileSize, out var size)) config.FileSizeLimitMB = size;
|
||||
|
||||
var retainCount = ConfigurationManager.AppSettings["Serilog:RetainedFileCountLimit"];
|
||||
if (int.TryParse(retainCount, out var count)) config.RetainedFileCountLimit = count;
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载SQLite配置
|
||||
/// </summary>
|
||||
public static SqliteConfig LoadSqliteConfig()
|
||||
{
|
||||
var config = new SqliteConfig();
|
||||
|
||||
var dbPath = ConfigurationManager.AppSettings["Sqlite:DbFilePath"];
|
||||
if (!string.IsNullOrEmpty(dbPath)) config.DbFilePath = dbPath;
|
||||
|
||||
var timeout = ConfigurationManager.AppSettings["Sqlite:ConnectionTimeout"];
|
||||
if (int.TryParse(timeout, out var t)) config.ConnectionTimeout = t;
|
||||
|
||||
var createIfNotExists = ConfigurationManager.AppSettings["Sqlite:CreateIfNotExists"];
|
||||
if (bool.TryParse(createIfNotExists, out var c)) config.CreateIfNotExists = c;
|
||||
|
||||
var enableWal = ConfigurationManager.AppSettings["Sqlite:EnableWalMode"];
|
||||
if (bool.TryParse(enableWal, out var w)) config.EnableWalMode = w;
|
||||
|
||||
var enableSqlLog = ConfigurationManager.AppSettings["Sqlite:EnableSqlLogging"];
|
||||
if (bool.TryParse(enableSqlLog, out var l)) config.EnableSqlLogging = l;
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载 Dump 配置 | Load Dump configuration
|
||||
/// </summary>
|
||||
public static DumpConfig LoadDumpConfig()
|
||||
{
|
||||
var config = new DumpConfig();
|
||||
|
||||
var storagePath = ConfigurationManager.AppSettings["Dump:StoragePath"];
|
||||
if (!string.IsNullOrEmpty(storagePath)) config.StoragePath = storagePath;
|
||||
|
||||
var enableScheduled = ConfigurationManager.AppSettings["Dump:EnableScheduledDump"];
|
||||
if (bool.TryParse(enableScheduled, out var enabled)) config.EnableScheduledDump = enabled;
|
||||
|
||||
var interval = ConfigurationManager.AppSettings["Dump:ScheduledIntervalMinutes"];
|
||||
if (int.TryParse(interval, out var min)) config.ScheduledIntervalMinutes = min;
|
||||
|
||||
var sizeLimit = ConfigurationManager.AppSettings["Dump:MiniDumpSizeLimitMB"];
|
||||
if (long.TryParse(sizeLimit, out var size)) config.MiniDumpSizeLimitMB = size;
|
||||
|
||||
var retentionDays = ConfigurationManager.AppSettings["Dump:RetentionDays"];
|
||||
if (int.TryParse(retentionDays, out var days)) config.RetentionDays = days;
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user