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
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.