Logging - toligmueller/WPF-MVVM-App-.NET5.0 GitHub Wiki
Für das Logging verwenden wir einfach ein Framework, nämlich Serilog.
Hier konfigurieren wir einfach Serilog in der App.xaml.cs, da diese als erstes geladen wird, bei App Start.
using Serilog;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace WPF_MVVM_Base
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
public App()
{
string outputTemplate = "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}";
Log.Logger = new LoggerConfiguration()
.ReadFrom.AppSettings()
.WriteTo.Debug(outputTemplate: outputTemplate)
.WriteTo.File(
"logs/app.log",
outputTemplate: outputTemplate,
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true)
.CreateLogger();
}
}
}Standardmäßig verwenden wir die Serilog.Sinks Debug und File, in der Variable outputTemplate wird der Log formatiert und in diesem fall wird der Log in die Datei app.log in den Ordner logs im root Verzeichnis der App hinterlegt.
Ist Serilog einmal Konfiguriert kann es von jeder Klasse in der App mit Log.Error(); aufgerufen werden, bzw. mit dem gewünschten "Log Level".
Für mehr Informationen siehe in der Serilog Dokumentation nach.