Rubrik: Dateisystem · Dateien lesen/schreiben | VB-Versionen: VB.NET | 15.06.07 |
LOG-Datei zur Fehlerprotokollierung (.NET) Eine Log-Datei erstellen, um darin Fehler zu protokollieren. | ||
Autor: Philip Kleimeyer | Bewertung: | Views: 37.522 |
www.aeitforum.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Laufzeitfehler sind etwas "hässliches", vor allem dann, wenn der End-Anwender nicht genau beschreiben kann, wie es zu dem Fehler kam. Daher kann es sinnvoll sein, sämtliche Laufzeitfehler zusätzlich in einer Log-Datei zu protokollieren, die der Anwender dem Entwickler anschließend zur Fehleranalyse zuschickt.
Nachfolgend möchten wir zeigen, wie man automatische Mit-Protokollieren von nicht abgefangenen Laufzeitfehlern realisieren kann.
Zunächst sollten Sie sich folgenden Tipp anschauen, bei dem gezeigt wird, wie man eine zentrale Fehlerbehandlung implementiert:
( Zentrale Fehlerbehandlung (VB.NET)
Fügen Sie jetzt noch nachfolgenden Code in das Modul ein:
''' <summary> ''' Erstellt auf dem FileSystem eine *.log Datei, die Fehlermeldungen protokolliert ''' </summary> ''' <param name="Message">Nachricht, die protokolliert wird</param> ''' <param name="LogFileName">Dateiname der Log-Datei</param> ''' <remarks></remarks> Public Sub LogMessage(ByVal Message As String, Optional ByVal LogFileName As String = "") If LogFileName.Length = "" Then ' Dateiname anhand des aktuellen Datums festlegen LogFileName = Application.StartupPath & "\EventLog_" & _ Format$(Now, "yyyy-mm-dd") & ".log" End If Try ' Datei öffen (Text anhängen) Dim oStream As IO.StreamWriter = System.IO.File.AppendText(LogFileName) ' Datum und Uhrzeit autom. eintragen oStream.WriteLine(Now) ' Message (Fehlermeldung) speicherrn oStream.WriteLine(Message & vbCrLf) ' Datei schließen oStream.Close() Catch ex As Exception End Try End Sub
Jetzt brauchen Sie nur noch GeneralErrorHandler-Prozedur um den Aufruf von LogMessage zu ergänzen:
' zentrale Fehlerbehandlung Private Sub GeneralErrorHandler(ByVal sender As Object, _ ByVal e As System.Threading.ThreadExceptionEventArgs) ... ' Fehler in LogFile protkollieren LogMessage(sError, Application.StartupPath & "\EventLog.log") End Sub