Serilog:仅在开发中记录到文件

问题描述 投票:0回答:1

我正在寻找一种为我的 .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 文件?我看过这个答案;也许预处理器指令是可行的方法?

感谢您的任何建议。

c# serilog
1个回答
0
投票

您可以使用

IWebHostEnvironment
对象(可通过
WebApplicationBuilder
实例获取)来确定您是否在开发模式下运行:

if(builder.Environment.IsDevelopment())
{
    // Do you dev stuff in here
}
© www.soinside.com 2019 - 2024. All rights reserved.