Logtofile

Description

Une petite classe qui permet de créer des fichiers de log facilement. On peut le personnaliser à la volée en choisissant le(s) séparateur(s) et le(s) caractère(s) de fin de ligne.

Source / Exemple :


Imports System.IO

Namespace Diagnose

    Public Class LogToFile
        Private mLogFileName As String
        Private mSeparator As String = ","
        Private mNewLine As String = ControlChars.CrLf

        Public Property LogFileName() As String
            Get
                Return mLogFileName
            End Get
            Set(ByVal Value As String)
                mLogFileName = Value
            End Set
        End Property
        Public Property Separator() As String
            Get
                Return mSeparator
            End Get
            Set(ByVal Value As String)
                mSeparator = Value
            End Set
        End Property
        Public Property NewLine() As String
            Get
                Return mNewLine
            End Get
            Set(ByVal Value As String)
                mNewLine = Value
            End Set
        End Property

        Public Sub New(ByVal LogFileName As String)
            mLogFileName = LogFileName
        End Sub
        Public Sub New(ByVal LogFileName As String, ByVal Separator As String)
            mLogFileName = LogFileName
            mSeparator = Separator
        End Sub
        Public Sub New(ByVal LogFileName As String, ByVal Separator As String, ByVal NewLine As String)
            mLogFileName = LogFileName
            mSeparator = Separator
            mNewLine = NewLine
        End Sub

        Public Function AddToLogFile(ByVal Message As String) As Integer
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(mLogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & mSeparator & Message & mNewLine)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally
                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try

        End Function
        Public Function AddToLogFile(ByVal Messages() As String) As Integer
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(mLogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & mSeparator & Join(Messages, mSeparator) & mNewLine)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally
                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try

        End Function

        Public Shared Sub AddToLogFile(ByVal LogFileName As String, ByVal Message As String)
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(LogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & "," & Message & ControlChars.CrLf)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally

                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try

        End Sub
        Public Shared Sub AddToLogFile(ByVal LogFileName As String, ByVal Messages() As String)
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(LogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & "," & Join(Messages, ",") & ControlChars.CrLf)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally
                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try
        End Sub
        Public Shared Sub AddToLogFile(ByVal LogFileName As String, ByVal Message As String, ByVal Separator As String, ByVal NewLine As String)
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(LogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & Separator & Message & NewLine)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally
                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try

        End Sub
        Public Shared Sub AddToLogFile(ByVal LogFileName As String, ByVal Messages() As String, ByVal Separator As String, ByVal NewLine As String)
            Dim mFileStream As FileStream
            Dim mStreamWriter As StreamWriter

            Try
                mFileStream = New FileStream(LogFileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                mStreamWriter = New StreamWriter(mFileStream)
                If mFileStream.CanWrite = True Then
                    mStreamWriter.Write(Now.ToString & Separator & Join(Messages, Separator) & NewLine)
                Else
                    Throw New Exception("Impossible d'écrire dans le fichier " & LogFileName & " !")
                End If
                mStreamWriter.Close()
                mFileStream.Close()
            Catch Err As Exception
                Throw New Exception(Err.Message)
            Finally
                mStreamWriter = Nothing
                mFileStream = Nothing
            End Try
        End Sub
        Public Sub ClearLogFile(ByVal MustDelete As Boolean)
            If MustDelete = True Then
                Dim oFileInfo As New FileInfo(mLogFileName)
                If oFileInfo.Exists Then
                    Try
                        oFileInfo.Delete()
                    Catch Err As Exception
                        Throw New Exception("Une erreur est survenu lors de la suppression du fichier de log ! " & err.Message)
                    End Try
                End If
            Else
                Try
                    Dim mFileStream As New FileStream(mLogFileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)
                    mFileStream.Close()
                    mFileStream = Nothing
                Catch Err As Exception
                    Throw New Exception("Une erreur est survenue en vidant le fichier de log ! " & Err.Message)
                End Try
            End If
        End Sub
        Protected Overrides Sub Finalize()
            MyBase.Finalize()
        End Sub

    End Class

End Namespace

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.