Logtofile

Soyez le premier à donner votre avis sur cette source.

Vue 8 392 fois - Téléchargée 353 fois

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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
23
Date d'inscription
jeudi 9 septembre 2004
Statut
Membre
Dernière intervention
10 novembre 2008

Je pense qu'il manque une petite chose à ton service de log c'est la génération automatique de plusieurs fichiers basée sur une taille limite (par fichier de log), aprés à nous de découper dedans pour virer les nombreuses procédures qui nous seront inutiles, mais sinon c'est assez propre, dommage qu'il n'y ai aucun commentaire.
Messages postés
4
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
15 août 2004

de toute facon que l'on soit chevroné ou débutant un code doit toujours être commenté...
Messages postés
17
Date d'inscription
jeudi 24 janvier 2002
Statut
Membre
Dernière intervention
9 juin 2004

Hello,

J'ai ajouté un fichier d'aide au format CHM avec des exemples, etc.

Ray
Messages postés
2
Date d'inscription
vendredi 2 janvier 2004
Statut
Membre
Dernière intervention
2 mars 2004

Je pense comme jesusonline. On est des débutants, du moins je le suis et sans un petit commentaire et un exemple d'utilisation ton code si parfait devient malheureusement inutile pour nous. :( Merci de donner un mini exemple d'utilisation et moi ça me changerais vraiment la vie car j'en ai besoin pour rajouter à mon programme qui envois des lignes de discussions comme un tchat dans un textbox,et je voudrais juste que les lignes soient sauvegarder dans un fichier log,un peu comme msn dernière version le fait avec les historiques.C'est assé urgent donc merci de me tenir au courant.
Messages postés
80
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
1 octobre 2004

tu devrais remplacer join par string.join et controlchars.crlf par un variable publique de type string qui serait system.convert.tochar(13) & system.convert.tochar(10)
Afficher les 6 commentaires

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.