В настоящее время я работаю над приложением ASP.NET Core 2.1 и использую Serilog для ведения журнала.Я хочу перезагрузить файл настроек приложения для моей реализации Serilog во время выполнения.
Моя цель - изменить уровень журнала во время выполнения, например, я пишу в минимальный уровень Отладка вместо Информация и я сохраняю файл.Я хочу вызвать перезагрузку настроек в реальном времени.Мой appsettings.json
выглядит так:
{
"serilog": {
"using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ],
"minimumLevel": "Information",
"writeTo": [
{
"name": "File",
"args": {
"fileSizeLimitBytes": 256000000,
"retainedFileCountLimit": 62,
"rollingInterval": "Day",
"rollOnFileSizeLimit": true,
},
{
"name": "Console",
}
]
}
}
В моем Program.cs я загружаю настройки с флагом reloadOnChange: true
.
public class Program
{
public static readonly ServiceSettings Settings = new ServiceSettings();
public static void Main(string[] args)
{
//...
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(Path.GetFullPath(CoreServiceBase.Instance.ConfigFilePath), optional: false, reloadOnChange: true)
.AddCommandLine(args)
.Build();
config.Bind(Settings);
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog((hostingContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration))
.UseConfiguration(config);
}
}
Мой запуск выглядит следующим образом:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
// ...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Custom application logging
ApplicationLogging.LoggerFactory = loggerFactory;
// ...
}
}
Знаете ли вы, как перезагрузить конфигурацию Serilog во время выполнения, если я каким-то образом изменил appsettings.json.=> Обновление в реальном времени для appsettings.json.
Спасибо !!