asp.net core 日志Serilog配置

2019-04-23  本文已影响0人  肖小胖码农人生

下载nuget包

Install-Package  Serilog 
Install-Package  Serilog.AspNetCore
Install-Package  Serilog.Settings.Configuration
Install-Package  Serilog.Sinks.Console
Install-Package  Serilog.Sinks.Debug
Install-Package  Serilog.Sinks.File
Install-Package  Serilog.Sinks.MSSqlServer 
Install-Package  Serilog.Sinks.RollingFile

在Program.cs程序启动时注入Serilog 加载配置

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

       public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
           WebHost.CreateDefaultBuilder(args)
               .UseUrls("http://localhost:5000")
               .UseStartup<Startup>()
               .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
               .WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day)
               .ReadFrom.Configuration(hostingContext.Configuration)
               .Enrich.FromLogContext()
               .WriteTo.Console());
   }

在appsettings.json配置文件

  "Serilog": {
    // 日志输出级别
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
        "Microsoft": "Information",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          "connectionString": "日志写入数据库的连接字符串",
          //表名
          "tableName": "Logs",
          //自动创建表
          "autoCreateSqlTable": true,
        //记录日志级别
          "restrictedToMinimumLevel": "Error"
        }
      }
    ]
  },

使用

引用 using Serilog;
Log.Verbose(exp, msg);      //最常见的记录信息,一般用于普通输出
Log.Debug(exp, msg);        //同样是记录信息,不过出现的频率要比Verbose少一些,一般用来调试程序
Log.Information(exp, msg);  //信息类型的消息
Log.Warning(exp, msg);      //警告信息,一般用于比较重要的场合
Log.Error(exp, msg);        //错误信息
Log.Fatal(exp, msg);        //致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。
上一篇下一篇

猜你喜欢

热点阅读