Antworten

Wie aktiviere ich das stdout-Logging für eine ASP.NET Core Anwendung?

Wo werden die stdout- und stderr-Logs meiner ASP.NET Core Anwendung gespeichert?

Standardmässig werden die Standard- und Fehler-Ausgaben (stdout / stderr) einer ASP.NET Core Anwendung auf Ihrem HOSTFACTORY® .NET Webhosting nicht automatisch in Dateien protokolliert.

Damit die Konsolenausgaben und Fehlermeldungen unter /httpdocs/logs/ geschrieben werden, muss das stdout-Logging in der web.config aktiviert und dem .NET-Benutzer die Schreibberechtigung auf den Logs-Ordner erteilt werden.

Wie aktiviere ich das Logging in der web.config?

  1. Öffnen Sie die web.config-Datei Ihrer ASP.NET Core Anwendung (lokal oder über den Dateimanager in Plesk).
  2. Suchen Sie nach dem Element <aspNetCore>.
  3. Ändern Sie das Attribut stdoutLogEnabled von "false" auf "true".

Vorher:

  1. <aspNetCore processPath="dotnet" arguments=".\MeineAnwendung.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

Nachher:

  1. <aspNetCore processPath="dotnet" arguments=".\MeineAnwendung.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

Das Attribut stdoutLogFile=".\logs\stdout" gibt an, dass die Log-Dateien im Ordner logs im Hauptverzeichnis der Anwendung angelegt werden (z.B. unter /httpdocs/logs/).

Hinweis: Eine Neuveröffentlichung Ihrer Anwendung (z.B. über Visual Studio oder dotnet publish) erzeugt die web.config in der Regel neu und setzt stdoutLogEnabled dabei wieder auf "false" zurück. Nach jeder Neuveröffentlichung muss das Logging bei Bedarf erneut aktiviert werden.

Wie erstelle ich den Logs-Ordner und vergebe die erforderlichen Schreibrechte?

Damit die Anwendung Log-Dateien anlegen kann, muss der Zielordner existieren und die nötigen NTFS-Berechtigungen aufweisen.

  1. Navigieren Sie zu my.hostfactory.ch » 'Webhostings' » (Webhosting auswählen, falls mehrere) » (Domain Account auswählen) » 'Plesk' » 'Dateien'.
  2. Erstellen Sie im Verzeichnis, in welchem die web.config liegt (regulär /httpdocs, bei einer Subdomain /subdomains/<name>/httpdocs), einen neuen Ordner namens logs (falls dieser noch nicht existiert).
  3. Klicken Sie neben dem Ordner logs auf das Menü (drei Punkte) und wählen Sie Berechtigungen ändern (Change Permissions).
  4. Wählen Sie die Application pool group (IWPG_...) aus und erteilen Sie dieser die Berechtigungen für Schreiben (Write) und Ändern (Modify).
  5. Speichern Sie die Änderungen mit OK.

Image: directory_permission_zensiert.png

Wo finde ich die erzeugten Log-Dateien?

Sobald das Logging aktiviert ist und Ihre Anwendung Anfragen verarbeitet oder gestartet wird, werden im Logs-Ordner Dateien im folgenden Format angelegt:

stdout_<Zeitstempel>_<PID>.log (z.B. stdout_20260817215000_12345.log)

Sie können diese Dateien direkt über den Plesk Dateimanager oder via FTP öffnen und herunterladen, um Fehlermeldungen und Konsolenausgaben einzusehen.

Was kann ich tun, wenn keine Log-Datei erstellt wird?

Meist sind dann falsche Berechtigungen, ein falscher Pfad oder ein Problem beim Start der Anwendung die Ursache. Prüfen Sie der Reihe nach:

  • Ist in der web.config das Attribut stdoutLogEnabled="true" korrekt gesetzt?
  • Ist der unter stdoutLogFile angegebene Pfad tatsächlich richtig?
  • Existiert der Zielordner mit dem Namen logs?
  • Besitzt die Application pool group (IWPG_...) auf diesem Ordner die Berechtigungen Schreiben (Write) und Ändern (Modify)?
  • Wurde die Anwendung nach Aktivierung des Loggings mindestens einmal über die Website aufgerufen, damit ein Startversuch ausgelöst wird?
  • Ist die web.config syntaktisch korrekt? Erhalten Sie einen Fehler 500, obwohl trotz aktiviertem Logging keine Log-Datei entsteht, deutet dies auf eine ungültige web.config selbst hin: Das ASP.NET Core Module startet in diesem Fall gar nicht erst (zum Beispiel wegen eines am <aspNetCore>-Element nicht zulässigen Attributs, das nur zum Handler gehört).

Was sollte ich bezüglich Sicherheit, Performance und Speicherplatz beachten?

Wichtiger Hinweis: Die stdout-Logs können sensible Daten wie Stacktraces oder Connection-Strings enthalten. Zudem rotiert das ASP.NET Core Module die Log-Dateien nicht automatisch und begrenzt auch deren Grösse nicht, was bei einer produktiven Anwendung mit hohem Traffic viele und grosse Log-Dateien zur Folge haben und den verfügbaren Speicherplatz Ihres HOSTFACTORY® .NET Webhostings belasten sowie die Performance beeinträchtigen kann.

Aktivieren Sie das stdout-Logging deshalb nur vorübergehend zur Fehlersuche beim Start Ihrer Anwendung, nicht dauerhaft im produktiven Betrieb. Deaktivieren Sie es nach erfolgreicher Fehlersuche wieder, indem Sie stdoutLogEnabled="false" setzen, und löschen Sie die angefallenen Log-Dateien. Für eine dauerhafte Protokollierung empfiehlt Microsoft stattdessen ein Logging-Framework mit Rotation und Grössenbegrenzung.

Weiterführende Informationen

Link zu diesem Artikel: https://support.hostfactory.ch/artikel/wie-aktiviere-ich-das-stdout-logging-fuer-eine-aspnet-core-anwendung/
URL in Zwischenablage kopieren
Welche Datenschutz-Einstellungen bevorzugen Sie?
Damit Sie unser Online-Angebot bestmöglich nutzen können, setzen wir auf unserer Website Cookies und ähnliche Technologien ein. Sie haben die Kontrolle darüber, zu welchen Zwecken wir Ihre Daten verarbeiten dürfen. Eine kommerzielle Verwendung ist ausgeschlossen.
Datenschutzerklärung
Technische Funktionen
Wir erfassen und speichern bestimmte Interaktionen und Einstellungen auf Ihrem Gerät, um die grundlegenden Funktionen unseres Online-Angebots, wie die Verwendung des Warenkorbs, zu ermöglichen. Bitte beachten Sie, dass die gespeicherten Daten keinerlei Rückschlüsse auf Ihre persönlichen Informationen zulassen.
Erweiterte Nutzungsmessung
Wir nutzen Analysetools, um technische Probleme zu erkennen und das Benutzererlebnis zu verbessern. Dazu gehören auch Dienste wie Google Analytics und Google Tag Manager, die Cookies verwenden, um Daten zu sammeln. Bitte beachten Sie, dass diese Daten auch von Google verarbeitet und möglicherweise für eigene Zwecke genutzt werden.