From 5f8ef1303741bde8cf0d233bd73227a382237fbe Mon Sep 17 00:00:00 2001 From: yubaolee Date: Mon, 4 Jan 2021 22:17:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=AD=97=E7=AC=A6=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Infrastructure/StartupLogger.cs | 24 ++++++++++++++++++++++++ OpenAuth.Mvc/Startup.cs | 18 ++++++++++++++---- OpenAuth.WebApi/Startup.cs | 9 ++++++--- 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 Infrastructure/StartupLogger.cs diff --git a/Infrastructure/StartupLogger.cs b/Infrastructure/StartupLogger.cs new file mode 100644 index 00000000..583ce3db --- /dev/null +++ b/Infrastructure/StartupLogger.cs @@ -0,0 +1,24 @@ + + +using Microsoft.Extensions.Logging; + +namespace Infrastructure +{ + /// + /// 从3.0开始Startup ConfigureServices中不能使用ILogger,需要扩展 + /// + public class StartupLogger + { + private readonly ILogger _logger; + + public StartupLogger(ILogger logger) + { + _logger = logger; + } + + public void LogInformation(string message) + { + _logger.LogInformation(message); + } + } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Startup.cs b/OpenAuth.Mvc/Startup.cs index 5dc6fd68..4a6a20f6 100644 --- a/OpenAuth.Mvc/Startup.cs +++ b/OpenAuth.Mvc/Startup.cs @@ -1,6 +1,6 @@ using System.IO; using Autofac; -using Infrastructure.Extensions; +using Infrastructure; using Infrastructure.Extensions.AutofacManager; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; @@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Tokens; using OpenAuth.App; using OpenAuth.App.HostedService; @@ -28,6 +29,12 @@ namespace OpenAuth.Mvc // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { + services.AddSingleton(provider => + { + var service = provider.GetRequiredService>(); + return new StartupLogger(service); + }); + var logger = services.BuildServiceProvider().GetRequiredService(); var identityServer = ((ConfigurationSection)Configuration.GetSection("AppSetting:IdentityServerUrl")).Value; if (!string.IsNullOrEmpty(identityServer)) { @@ -81,16 +88,19 @@ namespace OpenAuth.Mvc services.Configure(Configuration.GetSection("AppSetting")); //在startup里面只能通过这种方式获取到appsettings里面的值,不能用IOptions😰 - var dbType = ((ConfigurationSection) Configuration.GetSection("AppSetting:DbType")).Value; + var dbType = ((ConfigurationSection)Configuration.GetSection("AppSetting:DbType")).Value; + var connectionString = Configuration.GetConnectionString("OpenAuthDBContext"); + logger.LogInformation($"当前数据库类型:{dbType},连接字符串:{connectionString}"); + if (dbType == Define.DBTYPE_SQLSERVER) { services.AddDbContext(options => - options.UseSqlServer(Configuration.GetConnectionString("OpenAuthDBContext"))); + options.UseSqlServer(connectionString)); } else //mysql { services.AddDbContext(options => - options.UseMySql(Configuration.GetConnectionString("OpenAuthDBContext"))); + options.UseMySql(connectionString)); } services.AddHttpClient(); diff --git a/OpenAuth.WebApi/Startup.cs b/OpenAuth.WebApi/Startup.cs index 12898399..23f0c3fd 100644 --- a/OpenAuth.WebApi/Startup.cs +++ b/OpenAuth.WebApi/Startup.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using Autofac; using IdentityServer4.AccessTokenValidation; +using Infrastructure; using Infrastructure.Extensions.AutofacManager; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; @@ -79,7 +80,7 @@ namespace OpenAuth.WebApi SearchOption.AllDirectories).Where(f =>Path.GetExtension(f).ToLower() == ".xml")) { option.IncludeXmlComments(name,includeControllerXmlComments:true); - logger.LogInformation($"find api file{name}"); + // logger.LogInformation($"find api file{name}"); } option.OperationFilter(); // 添加httpHeader参数 @@ -140,15 +141,17 @@ namespace OpenAuth.WebApi // policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(origins))); //在startup里面只能通过这种方式获取到appsettings里面的值,不能用IOptions😰 var dbType = ((ConfigurationSection)Configuration.GetSection("AppSetting:DbType")).Value; + var connectionString = Configuration.GetConnectionString("OpenAuthDBContext"); + logger.LogInformation($"当前数据库类型:{dbType},连接字符串:{connectionString}"); if (dbType == Define.DBTYPE_SQLSERVER) { services.AddDbContext(options => - options.UseSqlServer(Configuration.GetConnectionString("OpenAuthDBContext"))); + options.UseSqlServer(connectionString)); } else //mysql { services.AddDbContext(options => - options.UseMySql(Configuration.GetConnectionString("OpenAuthDBContext"))); + options.UseMySql(connectionString)); } services.AddHttpClient();