【问题标题】:ASP.NET Core - Serilog in default the loggerASP.NET Core - Serilog 默认为记录器
【发布时间】:2020-01-23 10:02:05
【问题描述】:

我想在我的 ASP.NET Core 应用程序中使用 Serilog 来记录到文件。我已经安装了包Serilog.AspNetCore(它依赖于Serilog.Settings.ConfigurationSerilog.Sinks.File,所以我想我不需要任何其他包)。

我的目标是像这样在我的控制器中实现登录:

...
private ILogger _log;
public MyController(ILogger<MyController> logger)
{
   _log = logger;
}
...

public ActionResult<MyResponse> Foo([FromRoute] Guid fooGuid)
{
   _log.LogError("error test");
}

在我的appsettings.json 我有这样的配置:

"Serilog": {
    "Using": [],
    "MinimumLevel": "Information",
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "patch": "D:\\Log\\log.log"
        }
      }
    ],
    "Application": "Centralized logging application"
  },
  "AllowedHosts": "*"

而我的Program.cs 看起来像这样:

  public static void Main(string[] args)
    {
      CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
          .ConfigureLogging((context, logging) =>
          {
            logging.ClearProviders();
            logging.AddSerilog().AddConfiguration(context.Configuration);
          })
          .ConfigureWebHostDefaults(webBuilder =>
          {
            webBuilder.UseStartup<Startup>();
          });

我认为问题出在Program.cs 文件中。如何实现这种记录到文件的最简单方法是什么?谢谢。

【问题讨论】:

    标签: c# asp.net asp.net-core .net-core serilog


    【解决方案1】:
    1. 您的 appsettings.json 中有错字。它应该说明 "path": "D:\\Log\\log.log"
    2. 您的CreateHostBuilder 方法,应包括:

      Host.CreateDefaultBuilder(args)
      .UseSerilog()
      
    3. 你的Main 方法应该包括

      // reading from appsettings.json the logging settings
      var configuration = new ConfigurationBuilder()
          .AddJsonFile("appsettings.json")
          .Build();
      Log.Logger = new LoggerConfiguration()
          .ReadFrom.Configuration(configuration)
          .CreateLogger();
      

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 2022-09-27
      • 2018-04-14
      相关资源
      最近更新 更多