Strukturirano logiranje v .NET Core 8/7/2019 12:35 PM Strukturirano logiranje v .NET Core Andrej Tozon ANT Andrej Tozon s.p., Ljubljana andrej@tozon.info | www.tozon.info | @andrejt © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Agenda Logiranje (v .NET) Strukturirano logiranje 8/7/2019 12:35 PM Agenda Logiranje (v .NET) Strukturirano logiranje .NET Core / .NET Standard Serilog © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Logiranje 8/7/2019 12:35 PM String interpolation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Logiranje 8/7/2019 12:35 PM String interpolation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Logiranje 8/7/2019 12:35 PM String interpolation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Logiranje Debug, Trace, Console Datoteka Aplikacija Event log Baza Elektronska pošta
Logiranje Debug, Trace, Console Datoteka Aplikacija Event log Elektronska pošta Baza
Logiranje Debug, Trace, Console Datoteka Log4net, … Aplikacija ? Event log Elektronska pošta Baza
Klasični logirni sistemi (log4net, …) 8/7/2019 12:35 PM Klasični logirni sistemi (log4net, …) Klasični logirni sistemi kot parameter vzamejo še vedno tekst ali objekt © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Struktura? Parameter Parameter Predloga
Struktura! Parameter Parameter Predloga Parameter Parameter Vrednost
Destrukturiranje
Logiranje v .NET Core / .NET Standard 8/7/2019 12:35 PM Logiranje v .NET Core / .NET Standard Logiranje v programskih knjižnicah Vključevanje konkretnih implementacij ogrodja za logiranje Abstrakcije! LibLog ILog Microsoft.Extensions.Logging .NET Standard 2.0 Abstrakcije – ILogger, ILoggerFactory Implementacije – Console, Debug, EventLog, AzureAppService, … Strukturirano logiranje – podprto (npr. Azure Table Storage) Problem uporave konkretnih implementacij v knjižnicah © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Abstrakcije VS implementacije Microsoft.Extensions.Logging Aplikacija 1 Aplikacija 2 Microsoft.Extensions.Logging.Abstractions Knjižnica 2 Knjižnica 3 Knjižnica 1 Knjižnica 4 Knjižnica 5
Microsoft.Extensions.Logging.Abstractions Namestitev: Nuget
Microsoft.Extensions.Logging.Abstractions Namestitev: Nuget
Logiranje v .NET Core / .NET Standard 8/7/2019 12:35 PM Logiranje v .NET Core / .NET Standard Kje konfiguriramo logiranje? ASP.NET Core 2 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Logiranje v .NET Core / .NET Standard
ILogger - stopnje logiranja Trace Debug Information Warning Error Critical
Logiranje v .NET Core / .NET Standard 8/7/2019 12:35 PM Logiranje v .NET Core / .NET Standard Filtriranje lahko tudi v kodi oz. “per provider” © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Logiranje v .NET Core 8/7/2019 12:35 PM Demo Logiranje v .NET Core Prilagojena implementacija abstrakcije ILogger © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Serilog Zgrajen po načelih strukturiranega logiranja Prilagojen za Microsoftovo abstrakcijo ILogger Serilog.AspNetCore za ASP.NET Core 2.0 Serilog.Extensions.Logging za ostalo Na voljo ~70 ponorov (sink) https://github.com/serilog/serilog/wiki/Provided-Sinks Dodatne možnosti Izpis v več ponorov hkrati Prilagojeno filtriranje Destrukturiranje Dodatno opremljanje
8/7/2019 12:35 PM Demo Serilog © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Še malo o performancah Pisanje v ILogger ni asinhrono Pohitritev predlog
Še malo o performancah
Viri Strukturirano logiranje - message templates https://messagetemplates.org/ Logging in ASP.NET Core https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging Nuget https://www.nuget.org Serilog https://serilog.net/ https://github.com/serilog/serilog
Vprašanja? Andrej Tozon ANT Andrej Tozon s.p., Ljubljana 8/7/2019 12:35 PM Vprašanja? Andrej Tozon ANT Andrej Tozon s.p., Ljubljana andrej@tozon.info | www.tozon.info | @andrejt © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
8/7/2019 12:35 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.