前幾篇都在講一些概念,今天我們來點好玩的!
凡走過必留下痕跡
Log在目前的網站是非常必要的,不僅僅是收集操作的資訊,發生bug時也可以更快的分析問題,提升速度。而一個好上手的套件那就很重要了,那麼我們來介紹今天的主角Serilog有甚麼強大之處吧!
可以直接Nuget介面安裝或是下指令
第三行~第六行可依需求安裝
$ dotnet add package Serilog
$ dotnet add package Serilog.AspNetCore
$ dotnet add package Serilog.Sinks.Console //輸出到指令視窗
$ dotnet add package Serilog.Sinks.File //輸出到檔案
$ dotnet add package Serilog.Sinks.Debug //輸出到 Debug 視窗
$ dotnet add package Serilog.Sinks.Email //輸出寄送 Email
原文在此(以下是我的翻譯 XDD)
Serilog 的Log分為以下等級 Verbose
、Debug
、Information
、Warning
、Error
、Fatal
Verbose
詳細的紀錄細節以及追蹤的資訊,通常只在異常情況下開啟Debug
就是debug,幫助查找已知的問題Information
需要被記錄的資訊與使用者相關的事件,預設為最低的紀錄級別Warning
可能的問題或服務/功能退化的指標Error
造成應用程序或連接系統中的故障Fatal
造成應用程序的嚴重錯誤using Serilog;
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console() //將Log輸出到終端機
.WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day) //將Log輸出為檔案,命名以當天日期為區分
.WriteTo.Email(new EmailConnectionInfo() //這段是寄送email
{
MailServer = "smtp.gmail.com",
Port = 465,
EnableSsl = true,
NetworkCredentials = new NetworkCredential("帳號", "密碼"),
EmailSubject = "Error Notification",
FromEmail = "寄信者",
ToEmail = "收信者",
})
.CreateLogger();
try
{
Log.Information("啟動開始");
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "發生例外");
return 1;
}
finally
{
Log.CloseAndFlush(); // 程式要結束前呼叫
}
MinimumLevel
指的是最最低顯示層級
,預設為Information
,若設定為MinimumLevel.Debug()
那麼會被記錄的等級會有Debug
、Information
、Warning
、Error
、Fatal
我們在try裡面故意製造錯誤int.Parse("aaaa");
File
Email
那今天就到這邊囉,大家明天見!