Soyez le premier à donner votre avis sur cette source.
Snippet vu 12 886 fois - Téléchargée 35 fois
' Voila la Classe ( LogGenerator.vb ) '********************************************************************************** ' $Archive: $ ' $Author: $ ' $Date: $ $Revision: $ ' Description : Classe de Gestion des Logs lors de l'exécution des Fonctions ' ********************************************************************************* Imports System.IO Public Class LogGenerator Private _NomFichier As String Private _NomApplication As String Private Const DEFAULT_NOM_APPLICATION As String = "TextLogGenerator" #Region "Liste des Propriétés Publiques" ' ----------------------------------------------------- Property NomFichier() As String Get NomFichier = RenvoieCheminFichier() End Get Set(ByVal Value As String) _NomFichier = Value End Set End Property ' ----------------------------------------------------- Property NomApplication() As String Get NomApplication = _NomApplication End Get Set(ByVal Value As String) _NomApplication = Value End Set End Property ' ----------------------------------------------------- #End Region ' ----------------------------------------------------- Public Sub New() ' Constructeur par défaut de la Classe _NomFichier = "Logging.txt" _NomApplication = "Logger" End Sub ' ----------------------------------------------------- Public Sub New(ByVal NomApplicationDonne As String, ByVal NomFichierLogDonne As String) ' Constructeur par défaut de la Classe _NomFichier = Trim(NomFichierLogDonne) _NomApplication = Trim(NomApplicationDonne) End Sub ' ----------------------------------------------------- Private Function RenvoieCheminFichier() As String ' Renvoie en résultat le chemin complet du fichier Dim TempDefault As String Dim TempNomFichier As String Dim TempPath As String Dim TempDirectory As String TempPath = Environment.CurrentDirectory If Right(TempPath, 1) <> "\" Then TempPath = TempPath & "\" End If TempDefault = TempPath & "Log.txt" If _NomFichier = "" Then Return TempDefault Exit Function End If If Not File.Exists(_NomFichier) Then Try Dim TempInfo As New FileInfo(_NomFichier) TempDirectory = TempInfo.DirectoryName If Not Directory.Exists(TempDirectory) Then TempNomFichier = TempDefault Else TempNomFichier = _NomFichier End If Catch Ex As Exception TempNomFichier = TempDefault End Try Else TempNomFichier = _NomFichier End If Return TempNomFichier End Function ' ----------------------------------------------------- Public Sub Log(ByVal TexteALogger As String) ' Enregistrement du texte fourni dans le fichier Log, s'il n'existe pas il le crée, ' sinon il écrit en fin de fichier Dim TempNomFichier As String Dim objWriter As StreamWriter TempNomFichier = RenvoieCheminFichier() If Not File.Exists(TempNomFichier) Then objWriter = File.CreateText(TempNomFichier) Else objWriter = File.AppendText(TempNomFichier) End If Try objWriter.WriteLine(TexteALogger) objWriter.Close() Catch Ex As Exception Err.Raise(Err.Number, , Ex.Message) End Try End Sub ' ----------------------------------------------------- Public Function WriteToEventLog(ByVal Entry As String, Optional ByVal EventType As EventLogEntryType = EventLogEntryType.Information) As Boolean ' Ajoute les message donnés directement dans l'Event Log de Windows Dim TempNomSource As String Dim objEventLog As New EventLog TempNomSource = IIf(Trim(_NomApplication) = "", DEFAULT_NOM_APPLICATION, _NomApplication).ToString Try 'Enregistre le message transmis dans l'Event Log en créant un nouveau bloc avec le nom de l'application ' s'il n'existe pas encore If Not objEventLog.SourceExists(TempNomSource) Then objEventLog.CreateEventSource(TempNomSource, "Application") End If objEventLog.Source = TempNomSource objEventLog.WriteEntry(Entry, EventType) Return True Catch Return False End Try End Function ' ----------------------------------------------------- Public Sub LogError(ByVal Ex As Exception, Optional ByVal NomProcedure As String = "") ' Log Automatiquement les erreur transmises Dim TempAns As String TempAns = "Exception " & Ex.Message & " survenue" If NomProcedure <> "" Then TempAns = TempAns & " in " & NomProcedure End If TempAns = TempAns & " [" & Now.ToLongDateString & "]" Log(TempAns) End Sub ' ----------------------------------------------------- Public Sub Reset() ' Efface le Fichier s'il existe déja Dim sFileName As String sFileName = RenvoieCheminFichier() Try File.Delete(sFileName) Catch End Try End Sub ' ----------------------------------------------------- End Class ' ----------------------------------------------------- ' Les appels se font de la manière suivante dans un cas pour le stockage en fichier texte d'une erreur survenue : ' On définit le nom du fichier et son chemin complet Private FichierLog As String = "C:\LogAd.log" ' On ajoute le catch d'erreur Try ... Catch ex As Exception Dim MonLog As New LogGenerator("WS_CREATION_COMPTE_AD", FichierLog) MonLog.Log("Erreur dans le Chargement de la liste des Comptes | Message complet : " & ex.Message.ToString & " | Date : " & Date.Now.ToString) Finally
17 nov. 2004 à 09:10
juste un petit oubli :
Imports System.Diagnostics
et attention à donner les droits en écriture sur le répertoire de log.
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.