Nhân dịp Microsoft tung ra con hàng .NET 7, nên mình update lại cái project cũ lên .NET 7, sẵn configure lại Serilog cho nó đẩy data ra seq cho dễ đọc.
Sample sử dụng NET 7 với minial api, cũng khá là hay ho.
Đầu tiên dựng sẵn cái server seq log bằng Docker
docker run --name seqlogger -d -p 5341:5341 -p 5342:80 -e ACCEPT_EULA=Y datalust/seq
Tiếp theo tạo một ứng dụng net core đơn giản
donet new web -o AntCommerce.Module.Order
OK đã xong, cái app đơn giản.
Add thêm đồ chơi liên quan Serilog vào app
dotnet add package Serilog.AspNetCore dotnet add package Serilog.Enrichers.Environment dotnet add package Serilog.Exceptions dotnet add package Serilog.Extensions.Logging dotnet add package Serilog.Sinks.Seq
Chúng ta có 2 cách để bắt sử dụng Serilog. Cấu hình bằng code và appSettings.json
Sử dụng code. Edit trong file Program.cs
builder.Host.UseSerilog(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .Enrich.FromLogContext() .Enrich.WithExceptionDetails() .Enrich.WithMachineName() .WriteTo.Console() .WriteTo.Seq("http://localhost:5341", Serilog.Events.LogEventLevel.Information) .CreateLogger();
Sử dụng appSettings.json. Edit trong file Program.cs
builder.Host.UseSerilog((context, loggerConfig) => loggerConfig.ReadFrom.Configuration(context.Configuration));
Thêm vào file appsettings.json
"Serilog": { "MinimumLevel": { "Default": "Debug", "Override": { "Microsoft": "Information", "System": "Information", "Microsoft.EntityFrameworkCore.Database.Command": "Information" } }, "WriteTo": [ { "Name": "Console" }, { "Name": "Seq", "Application": "Order API", "Args": { "serverUrl": "http://localhost:5341" } } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId", "WithMachineEnvironmentName", "WithExceptionDetails" ], "Properties": { "Application": "Order API" } }
Bắt đầu sử dụng
Tận hưởng thành quả
Chúc các bạn vui vẻ, happy coding.
Source code: https://github.com/tuanitpro/AntCommerce