Автономный файл конфигурации для serilog - PullRequest
2 голосов
/ 09 июля 2020

Я ищу способ предоставить автономный файл конфигурации XML / JSON для serilog, который динамически загружается из каталога, в котором работает само приложение.

Я ищу что-то похожее на что NLog предоставляет . Как описано в Nlog # Файл конфигурации :

Для автономного приложения * .exe поиск файлов выполняется следующим образом:

  • стандартный файл конфигурации приложения (обычно applicationname.exe.config)
  • applicationname.exe.nlog в каталоге приложения
  • NLog.config в каталоге приложения (с учетом имени; с использованием docker do tnet core)
  • NLog.dll.nlog в каталоге, где находится NLog.dll (только если NLog не установлен в GA C)

Есть ли подобное поведение в serilog?

1 Ответ

2 голосов
/ 10 июля 2020

Я сам нашел ответ в этой wiki .

var configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("debug.json")
    .Build();

var logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration)
    .CreateLogger();

Где debug.json - это файл в каталоге приложения, который можно изменить. Мой образец файла выглядит как

{
  "Serilog": {
    "Using":  [ "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "File", "Args": { "path": "log.log" } }
    ],
    "Properties": {
        "Application": "Sample"
    }
  }
}
...