我正在寻找一种为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中是否有类似的行为?
答案 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"
}
}
}