Asp.net core Nlog-数据库目标延迟
我已经将nlog配置为将日志写入数据库,并使用配置布局抽屉从appsettings.json为主机提供连接字符串。但是在Startup.ConfigureServices和Startup.Configure中有一些日志调用。所以,当配置未就绪时,nlog此时会尝试写入数据库。它需要空主机配置仍然没有准备好!,在nlog自己的日志文件中,我看到由于主机为空而导致日志记录失败的错误Asp.net core Nlog-数据库目标延迟,asp.net-core,logging,nlog,asp.net-core-3.0,Asp.net Core,Logging,Nlog,Asp.net Core 3.0,我已经将nlog配置为将日志写入数据库,并使用配置布局抽屉从appsettings.json为主机提供连接字符串。但是在Startup.ConfigureServices和Startup.Configure中有一些日志调用。所以,当配置未就绪时,nlog此时会尝试写入数据库。它需要空主机配置仍然没有准备好!,在nlog自己的日志文件中,我看到由于主机为空而导致日志记录失败的错误 所以,问题是:在配置就绪之前,是否不登录到数据库目标 我猜问题是在加载MEL配置之前就开始使用NLog了 解决方案是执
所以,问题是:在配置就绪之前,是否不登录到数据库目标 我猜问题是在加载MEL配置之前就开始使用NLog了 解决方案是执行早期加载并设置appsettings.json:
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
ConfigSettingLayoutRenderer.DefaultConfiguration = Configuration;
// Loads NLog.config one more time
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
另见:
NLog 4.7.1和NLog.Web.AspNetCore版本。4.9.3将有可能做到这一点:
var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
另请参见:谢谢!但是我没有,我应该把你的代码粘贴到哪里。经过一些调查,我发现导致错误的日志消息是由AppMetrics。。。CreateWebHostBuilderargs.Build-在那里。跑因此,要执行代码,我应该在某个地方获取ENV值。我完成了在“.UseStartup”之后添加的操作:.ConfigureAppConfigurationhostingContext,config=>{ConfigSettingLayoutRenderer.DefaultConfiguration=config.Build;};在Program.cs中,CreateWebHostBuilderstring[]args