Créer des fichiers de log en quelques lignes

Contenu du snippet

Ce code est trés simple et vous permet de créer des fichiers de log trés trés facilement.

Il est facilement amèliorable selon les besoins...

On a ici la classe et un exemple d'utilisation.

Source / Exemple :


' importatation du module E/S
Imports System.IO

Module LogMod

'objet de log qui sera unique (singleton)
Private objLog As log4Raid

    'procédure qui sera appeler pour ecrire dans un fichier log (exemple)
    Public Sub EcrireLog(ByVal type As String, ByVal texte As String)
        If (objLog Is Nothing) Then
            objLog = New log4Raid(Environment.CurrentDirectory + "\logs", "Log")
        End If
        objLog.EcrireLog(type, texte)
    End Sub

     'classe de log
    Private Class log4Raid
        'format de la date
        Private date_format As String
        'chemin vers le dossier des logs
        Private path As String
        'nom de base des fichiers de log
        Private base_name As String
        'longeur max avant de changer de numéro de fichier
        Private file_length As Long

        Public Sub New(ByVal p_path As String, ByVal p_base_name As String, Optional ByVal p_file_length As Long = 800000, Optional ByVal p_date_format As String = "dd/MM/yyyy hh:mm:ss")
            path = p_path
            base_name = p_base_name
            file_length = p_file_length
            date_format = p_date_format
        End Sub

        Public Sub EcrireLog(ByVal type As String, ByVal texte As String)
            Try
                'recherche du nom de fichier
                'liste des fichiers du repertoire
                Dim fichiers() As String = Directory.GetFiles(path, "*.txt")
                'definition du nom du fichier
                Dim nomFichier As String = ""
                ' trie des fichiers par ordre alphabétique
                Array.Sort(fichiers)
                'si on a au moins un fichiers
                If (fichiers.Length > 0) Then
                    ' le nom du fichiers sera (temporairement) le dernier de la liste
                    nomFichier = fichiers(fichiers.Length - 1)
                    'récupération des informations du fichier
                    Dim fi As New FileInfo(nomFichier)
                    'si le fichier est supérieur à la taille max on remer le nom du fichier à vide
                    If (fi.Length > file_length) Then
                        nomFichier = ""
                    End If
                End If

                ' si le nom du fichier est vide on va créer un nouveau fichier
                If nomFichier = "" Then
                    nomFichier = path + "\" + base_name + "_" + CStr(fichiers.Length) + ".txt"
                End If
                'ouverture d'un lien vers le fichier
                Dim LogStream As New StreamWriter(nomFichier, True, System.Text.Encoding.UTF8)
                'ecriture sur le fichier
                LogStream.WriteLine(Format(Now(), date_format) + ": " + type + " : " + texte)
                'fermeture du lien vers le fichier
                LogStream.Close()
            Catch ex As Exception
                'erreur, impossible d'ecrire dans le fichier
                MsgBox("Erreur d'écriture dans les fichiers LOG : " + ex.Message)
            End Try
        End Sub
    End Class
End Module

A voir également

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.