Serilog
с ILogger<T>
#seriog #ilogger #log #donet #aspnet
Serilog
удобен в использовании и имеет множество библиотек расширений, однако ILogger<T>
за счет generic
параметра обладает метаданными типа, в который был передан.В aspnet можно легко интегрировать
Serilog
в ILogger<T>
и продолжать использовать удобный логгер с типовым обогащением.Пошаговая инструкция:
dotnet add package Serilog
dotnet add package Serilog.Sinks.Console
dotnet add package Serilog.AspNetCore
Logger
(например, в самом начале класса Program
)
Log.Logger = new LoggerConfiguration()
.WriteTo.Console(outputTemplate:
"[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}"
)
.CreateLogger();
UseSerilog
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog(); // <-- !!!
ILogger<T>
полученный через DI и текст логов отобразит generic тип объекта ILogger<T>
:
app.MapGet("/", (ILogger<Program> logger) => {
logger.LogInformation("message: {Message}", "hello!");
return "OK";
});
// [22:16:27 INF] Program - message: hello!
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤🔥3