Log-File kürzen

deusfalsus

Erfahrenes Mitglied
Hallo,

wie kann ich am sinnvollsten ein überdimensional gewuchertes Log-File kürzen?
Ich musste kürzlich feststellen, dass auf manchen Clients besagtes File auf über 200MB angewachsen ist.
Nun möchte ich ein kleines Programm in den Autostart legen, welches prüft, ob die Datei über ein MB ist und wenn ja, sollen nur die letzten 100 Zeilen bestehen bleiben und der Rest gelöscht werden.
 
Also so sollts gehen, habs nicht getestet:

Code:
        If New IO.FileInfo("log.txt").Length > 1048576 Then
            Dim zeilen As New List(Of String)
            Dim datei As New IO.StreamReader("log.txt")

            While Not datei.EndOfStream
                zeilen.Add(datei.ReadLine())
            End While

            datei.Close()
            datei.Dispose()

            Dim datei2 As New IO.StreamWriter("log.txt", False)

            For i = zeilen.Count - 100 To zeilen.Count
                datei2.WriteLine(zeilen.ElementAt(i))
            Next

            datei2.Flush()
            datei2.Close()
            datei2.Dispose()
        End If

Vielleicht gibts schnellere Methoden (sowohl von der Code-Menge, als auch von der für die Ausführung benötigten Zeit!).
 
Wieso verwendest du nicht einfach ein Logging-Framework á la NLog oder log4net? Diese Frameworks haben besagte Funktionalität an Board und kann per Konfiguration entsprechend eingestellt werden. Erspart dir ein eigenes Autostart-Tool oder andere Umwege.
 
Zurück