美文网首页
asp.net core 日志Serilog配置

asp.net core 日志Serilog配置

作者: 肖小胖码农人生 | 来源:发表于2019-04-23 15:13 被阅读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);        //致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。
    

    相关文章

      网友评论

          本文标题:asp.net core 日志Serilog配置

          本文链接:https://www.haomeiwen.com/subject/hbvvgqtx.html