我正在寻找一种为我的 .NET 控制台应用程序配置 Serilog 的方法,以便仅在本地开发时才记录到本地文件。目前它在我的 appsettings.json 中配置为 Seq:
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Seq",
"Args": {
"serverUrl": "https://some/url",
"apiKey": "aKey",
"batchPostingLimit": "500"
}
},
{
"Name": "debug"
}
],
"Enrich": [
"FromLogContext",
"WithMachineName"
]
},
在代码中我有这个:
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.Enrich.WithProperty("MachineName", Environment.MachineName)
.CreateLogger();
我可以做些什么吗?也许可以借助 appsettings.Development.json 文件?我看过这个答案;也许预处理器指令是可行的方法?
感谢您的任何建议。
IWebHostEnvironment
对象(可通过 WebApplicationBuilder
实例获取)来确定您是否在开发模式下运行:
if(builder.Environment.IsDevelopment())
{
// Do you dev stuff in here
}