diff --git a/src/WCTDataMiner/Program.cs b/src/WCTDataMiner/Program.cs index e989910..5437364 100644 --- a/src/WCTDataMiner/Program.cs +++ b/src/WCTDataMiner/Program.cs @@ -17,31 +17,37 @@ public class Program { public static async Task Main(string[] args) { - // 配置 Serilog + // 1. 构建引导配置(用于 Serilog 初始化) + var bootstrapConfig = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false) + .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") ?? "Production"}.json", optional: true) + .AddEnvironmentVariables() + .AddCommandLine(args) + .Build(); + + // 2. 创建引导日志器 Log.Logger = new LoggerConfiguration() - .MinimumLevel.Information() - .MinimumLevel.Override("WCTDataMiner", Serilog.Events.LogEventLevel.Debug) - .WriteTo.Console() - .WriteTo.File( - "./data/logs/wctminer-.log", - rollingInterval: RollingInterval.Day, - outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}") - .CreateLogger(); + .ReadFrom.Configuration(bootstrapConfig) + .Enrich.FromLogContext() + .CreateBootstrapLogger(); try { var builder = Host.CreateApplicationBuilder(args); - // 配置 - builder.Configuration.AddJsonFile("appsettings.json", optional: false); - builder.Configuration.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true); - builder.Configuration.AddEnvironmentVariables(); - builder.Configuration.AddCommandLine(args); + // 3. 使用 AddConfiguration 添加已构建的配置(关键修复) + builder.Configuration.AddConfiguration(bootstrapConfig); - // Serilog - builder.Services.AddSerilog(); + // 4. 配置 Serilog + builder.Services.AddSerilog((_, loggerConfig) => + { + loggerConfig + .ReadFrom.Configuration(builder.Configuration) + .Enrich.FromLogContext(); + }); - // 注册服务 + // 5. 注册服务 builder.Services.AddDatabaseServices(builder.Configuration); builder.Services.AddApplicationServices(); @@ -80,4 +86,4 @@ public class Program await Log.CloseAndFlushAsync(); } } -} \ No newline at end of file +} diff --git a/src/WCTDataMiner/WCTDataMiner.csproj b/src/WCTDataMiner/WCTDataMiner.csproj index 216640c..fb0dc24 100644 --- a/src/WCTDataMiner/WCTDataMiner.csproj +++ b/src/WCTDataMiner/WCTDataMiner.csproj @@ -21,6 +21,7 @@ +