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