serilog的独立配置文件

时间:2020-07-09 20:01:43

标签: serilog

我正在寻找一种为serilog提供独立的XML / JSON配置文件的方法,该文件是从应用程序本身运行的目录动态加载的。

我正在寻找与NLog provides类似的东西。如Nlog#Configuration-file中所述:

对于独立的* .exe应用程序,文件搜索如下:

  • 标准应用程序配置文件(通常为applicationname.exe.config)
  • applicationname.exe.n登录到应用程序的目录中
  • 应用程序目录中的NLog.config(名称敏感;使用docker dotnet内核)
  • 位于NLog.dll的目录中的NLog.dll.nlog(仅当GAC中未安装NLog时)

serilog中是否有类似的行为?

1 个答案:

答案 0 :(得分:2)

我自己在此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"
    }
  }
}