启动时显示连接字符串

This commit is contained in:
yubaolee 2021-01-04 22:17:49 +08:00
parent 2180fe98c4
commit 5f8ef13037
3 changed files with 44 additions and 7 deletions

View File

@ -0,0 +1,24 @@

using Microsoft.Extensions.Logging;
namespace Infrastructure
{
/// <summary>
/// 从3.0开始Startup ConfigureServices中不能使用ILogger需要扩展
/// </summary>
public class StartupLogger
{
private readonly ILogger<StartupLogger> _logger;
public StartupLogger(ILogger<StartupLogger> logger)
{
_logger = logger;
}
public void LogInformation(string message)
{
_logger.LogInformation(message);
}
}
}

View File

@ -1,6 +1,6 @@
using System.IO; using System.IO;
using Autofac; using Autofac;
using Infrastructure.Extensions; using Infrastructure;
using Infrastructure.Extensions.AutofacManager; using Infrastructure.Extensions.AutofacManager;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.DataProtection;
@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using OpenAuth.App; using OpenAuth.App;
using OpenAuth.App.HostedService; 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. // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddSingleton(provider =>
{
var service = provider.GetRequiredService<ILogger<StartupLogger>>();
return new StartupLogger(service);
});
var logger = services.BuildServiceProvider().GetRequiredService<StartupLogger>();
var identityServer = ((ConfigurationSection)Configuration.GetSection("AppSetting:IdentityServerUrl")).Value; var identityServer = ((ConfigurationSection)Configuration.GetSection("AppSetting:IdentityServerUrl")).Value;
if (!string.IsNullOrEmpty(identityServer)) if (!string.IsNullOrEmpty(identityServer))
{ {
@ -81,16 +88,19 @@ namespace OpenAuth.Mvc
services.Configure<AppSetting>(Configuration.GetSection("AppSetting")); services.Configure<AppSetting>(Configuration.GetSection("AppSetting"));
//在startup里面只能通过这种方式获取到appsettings里面的值不能用IOptions😰 //在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) if (dbType == Define.DBTYPE_SQLSERVER)
{ {
services.AddDbContext<OpenAuthDBContext>(options => services.AddDbContext<OpenAuthDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("OpenAuthDBContext"))); options.UseSqlServer(connectionString));
} }
else //mysql else //mysql
{ {
services.AddDbContext<OpenAuthDBContext>(options => services.AddDbContext<OpenAuthDBContext>(options =>
options.UseMySql(Configuration.GetConnectionString("OpenAuthDBContext"))); options.UseMySql(connectionString));
} }
services.AddHttpClient(); services.AddHttpClient();

View File

@ -4,6 +4,7 @@ using System.IO;
using System.Linq; using System.Linq;
using Autofac; using Autofac;
using IdentityServer4.AccessTokenValidation; using IdentityServer4.AccessTokenValidation;
using Infrastructure;
using Infrastructure.Extensions.AutofacManager; using Infrastructure.Extensions.AutofacManager;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.DataProtection;
@ -79,7 +80,7 @@ namespace OpenAuth.WebApi
SearchOption.AllDirectories).Where(f =>Path.GetExtension(f).ToLower() == ".xml")) SearchOption.AllDirectories).Where(f =>Path.GetExtension(f).ToLower() == ".xml"))
{ {
option.IncludeXmlComments(name,includeControllerXmlComments:true); option.IncludeXmlComments(name,includeControllerXmlComments:true);
logger.LogInformation($"find api file{name}"); // logger.LogInformation($"find api file{name}");
} }
option.OperationFilter<GlobalHttpHeaderOperationFilter>(); // 添加httpHeader参数 option.OperationFilter<GlobalHttpHeaderOperationFilter>(); // 添加httpHeader参数
@ -140,15 +141,17 @@ namespace OpenAuth.WebApi
// policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(origins))); // policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(origins)));
//在startup里面只能通过这种方式获取到appsettings里面的值不能用IOptions😰 //在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) if (dbType == Define.DBTYPE_SQLSERVER)
{ {
services.AddDbContext<OpenAuthDBContext>(options => services.AddDbContext<OpenAuthDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("OpenAuthDBContext"))); options.UseSqlServer(connectionString));
} }
else //mysql else //mysql
{ {
services.AddDbContext<OpenAuthDBContext>(options => services.AddDbContext<OpenAuthDBContext>(options =>
options.UseMySql(Configuration.GetConnectionString("OpenAuthDBContext"))); options.UseMySql(connectionString));
} }
services.AddHttpClient(); services.AddHttpClient();