Schon seit einigen Versionen verfügt BlogEngine.NET eine eigentlich recht nützliche Erweiterung zum Protokollieren von aufgetretenen Fehlern. Die Erweiterung ist standardmäßig nicht aktiviert. Zu finden ist sie in den Einstellungen der Erweiterungen unter der lapidaren Bezeichnung Logger.

BlogEngine.NET Logger

Wenn die Erweiterung aktiviert wird, tut sie genau das was in der Beschreibung steht:
Wenn ein Log-Ereignis ausgelöst wird, schreibt die Erweiterung alles schön hintereinander in eine Datei.
Am Anfang mag das Ergebnis ja noch überschaubar sein. Aber spätestens nach ein oder zwei Wochen ist die Suche nach einem bestimmten Zeitraum oder Ereignis von heftigem Scrollen begleitet.
Mir persönlich würde eine log-Datei pro Tag am besten gefallen. Das ist schon übersichtlich und die Ereignisse können wesentlich leichter gefunden werden. Mit einer kleinen Anpassung ist dieses Verhalten auch leicht umzusetzen.
Der Code der Erweiterung befindet sich im Ordner App_Code\Extensions in der Datei Logger.cs.

private static string GetFileName()
{
    if (_FileName != null)
        return _FileName;
    string file = "errors-"
        + DateTime.Now.ToString(
            "dd-MM-yyyy",
            CultureInfo.InvariantCulture)
        + ".txt";
    _FileName = HostingEnvironment.MapPath(
        Path.Combine(
            BlogSettings.Instance.StorageLocation + "logs/",
            file));
    return _FileName;
}

Der Dateiname wird in der Methode GetFileName zusammengesetzt, Wenn in dieser Methode jetzt das Datum im Dateinamen verwendet wird, sollte es das auch schon gewesen sein. Dabei auch gleich den Pfad so geändert, dass die Log-Dateien in einem Unterverzeichnis logs des Ordners App_Data geschrieben werden.
Das Ergebnis sieht dann folgendermaßen aus.

BlogEngine ErrorLogs

Fazit:

Mit der Änderung einer Zeile Code lässt sich auch der Standard-Logger von Blogengine.NET dazu überreden, seine Log-Dateien benutzerfreundlich und organisiert zu erzeugen.

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de