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();