CORE3.1 WebAPI Serilog日誌框架
阿新 • • 發佈:2020-07-24
CORE3.1 WebAPI Serilog日誌框架
一、安裝NuGet包:
-
Serilog v2.9.0
-
Serilog..AspNetCore v3.2.0
-
-
Serilog.Sinks.File v4.1.0 輸出到檔案
二、修改Program.cs檔案
1 public static IHostBuilder CreateHostBuilder(string[] args) => 2 Host.CreateDefaultBuilder(args) 3 .ConfigureWebHostDefaults(webBuilder => 4{ 5 webBuilder.UseStartup<Startup>(); 6 }) 7 .UseSerilog((context, configuration) => 8 { 9 var path = AppDomain.CurrentDomain.BaseDirectory; 10 path = path.Substring(0, path.LastIndexOf("bin") + 3); 11 configuration 12 .MinimumLevel.Debug() 13 .MinimumLevel.Override("Microsoft", LogEventLevel.Error) 14 .Enrich.FromLogContext() 15 .WriteTo.Console()16 .WriteTo.File(path: Path.Combine(path, "log.log"), rollingInterval: RollingInterval.Day); 17 });//注入管道
三、在控制器列印日誌
[Route("[controller]")] [ApiController] public class SerilogController : ControllerBase { private readonly ILogger<SerilogController> _logger; public SerilogController(ILogger<SerilogController> logger) { _logger = logger; } [HttpGet] public void Name() { _logger.LogError("輸出日誌成功"); var v = "你好"; var vv = "世界"; _logger.LogInformation("{0}{1}", v, vv);//佔位符 var v1 = "你好"; var vv1 = 18; _logger.LogInformation("{0}{1}", v1, vv1>=18);//新增條件判斷 var model = new { Name = "你是誰", age = 14 }; _logger.LogInformation("{@model}",model);//JSON格式列印日誌 }