Dev4Devs
10 subscribers
17 photos
6 files
43 links
Возможно, когда нибудь, этот канал с заметками на IT тематику превратиться в что-то большее, но пока тут только заметки
#dev #csharp #it #tips #development #code #prog #devops #software
Download Telegram
📱 Интерграция 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