serilog - serilog 的独立配置文件
问题描述
我正在寻找一种方法来为 serilog 提供一个独立的 XML/JSON 配置文件,该文件是从应用程序本身运行的目录中动态加载的。
我正在寻找类似于NLog 提供的东西。如Nlog#Configuration-file中所述:
对于独立的 *.exe 应用程序,文件搜索如下:
- 标准应用程序配置文件(通常是 applicationname.exe.config)
- 应用程序目录中的 applicationname.exe.nlog
- 应用程序目录中的 NLog.config(名称敏感;使用 docker dotnet core)
- NLog.dll.nlog 在 NLog.dll 所在目录中(仅当 GAC 中未安装 NLog 时)
serilog中是否有类似的行为?
解决方案
我自己在这个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"
}
}
}
推荐阅读
- javascript - 使用 sortBy redux 操作对 redux 存储数组进行排序不会向组件发送新道具
- groovy - 使用拆卸脚本在准备好的 api 中重新运行测试用例
- asp.net-web-api - 订阅队列的 Web Api 应用程序。这是个好主意吗?
- android - 如何从 android 应用程序以编程方式将 WebApp 快捷方式添加到主屏幕,以全屏启动 WebApp
- sql - 在 DATEDIFF 之后使用 CASE 逻辑
- javascript - Vue.js @change 和 $event.target.value 问题
- java - 如何使用 Java 和两个嵌套的 for 循环计算扑克中的对数
- javascript - 使用谷歌应用脚本/javascript 自动生成谷歌电子表格报告而不使用按钮?
- javascript - 如何使用两个下拉菜单在文本框中打印值
- reactjs - 使用 Redux 的 connect() 后,历史作为孩子的道具在我的反应应用程序中消失了吗?