【问题标题】:Logging with Serilog on .net core在 .net core 上使用 Serilog 进行日志记录
【发布时间】:2021-04-28 22:32:46
【问题描述】:

我是第一次使用 Serilog,我阅读了一些教程,但它没有写入 DB

这是我编写配置的 Program.cs 文件:

public class Program
{
    public async static Task Main(string[] args)
    {
        var host = CreateHostBuilder(args).Build();
        await host.RunAsync();
    }



    public static IHostBuilder CreateHostBuilder(string[] args)
    {
        var configSettings = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();

        Log.Logger = new Serilog.LoggerConfiguration()
            .ReadFrom.Configuration(configSettings)
            .CreateLogger();

        return Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration(config =>
        {
            config.AddConfiguration(configSettings);
        })
        .ConfigureLogging(logging =>
        {
            logging.AddSerilog();
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

    }
}

}

执行时没有问题,丢失时也创建了表,但没有插入日志。

"Serilog.Extensions.Logging": "1.0.0",
  "Serilog": {
    "MinimumLevel": "Error",
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          "connectionString": constr,
          "tableName": "Logs",
          "autoCreateSqlTable": true
        }
      }
    ]
  }

这是 appjson 中的配置。

我通过在构造函数中添加日志并在方法上调用它来消耗日志,这似乎也可以。

【问题讨论】:

  • 您能告诉我您是如何使用 Serilog 来记录信息的吗?似乎 MinimumLevel 是错误的,这意味着只有错误消息会登录到数据库中。
  • 这是问题,先生,谢谢。你可以添加一个答案,我会批准它作为一个答案

标签: asp.net-core logging .net-core serilog


【解决方案1】:

根据您的描述和设置,我发现您的 Serilog MinimumLevel 是错误而不是信息。

如果您记录信息,它将不会登录到数据库中。您应该改用日志错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多