1. 程式人生 > >手把手教你AspNetCore WebApi:Serilog(日誌)

手把手教你AspNetCore WebApi:Serilog(日誌)

# 前言 小明目前已經把“待辦事項”功能實現了,API文件也搞定了,但是馬老闆說過,絕對不能讓沒有任何監控的專案上線的。 # Serilog是什麼? 在.NET使用日誌框架第一時間會想到NLog或是Log4Net,Serilog 是這幾年快速崛起的Log框架之一,Serilog是以Structured logging 為基礎進行設計,透過logging API 可以輕鬆的記錄應用程式中物件屬性,方便快速進行logging 內容進行查詢與分析,並將其紀錄內容透過json (可指定) 的方式輸出。 # 使用 **首先**,將Serilog.AspNetCore NuGet軟體包安裝到您的應用程式中。 ``` dotnet add package Serilog.AspNetCore ``` **接下來**,在應用程式的Program.cs檔案中,首先配置Serilog。 ``` public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Console() .CreateLogger(); try { Log.Information("啟動主機"); CreateHostBuilder(args).Build().Run(); } catch (Exception ex) { Log.Fatal(ex, "主機意外終止"); } finally { Log.CloseAndFlush(); } } ``` **然後**,新增UseSerilog()到中的通用主機CreateHostBuilder()。 ``` public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog() // <-新增此行 .ConfigureWebHostDefaults(webBuilder => { webBuilder.Us