Guardar un archivo Log con VB.Net

A veces es útil tener una bitácora (log) de lo que va haciendo el programa que vamos desarrollando, sin necesidad de estar depurando o haciendo un paso a paso, simplemente dejar que el programa se ejecute y al final revisar los “errores” o los procesos que terminó satisfactoriamente, aquí pongo una función que permite llevar eso, y que pues resulta útil al final

 

Public Shared Sub Log(ByVal sPathName As String, ByVal sMsg As String, Optional ByVal MostrarMsgBox As Boolean = True, Optional ByVal TipoDeMsgBox As MessageBoxIcon = MessageBoxIcon.Information)
ErrorLog(sPathName, sMsg)
If (MostrarMsgBox = True) Then
MessageBox.Show(sMsg, “Cuadro de Mensajes”, MessageBoxButtons.OK, TipoDeMsgBox)
End If
End Sub

Public Shared Sub ErrorLog(ByVal sPathName As String, ByVal sErrMsg As String)
Try
Dim sYear As String = DateTime.Now.Year.ToString()
Dim sMonth As String = DateTime.Now.Month.ToString()
Dim sDay As String = DateTime.Now.Day.ToString()
sErrorTime = sYear + sMonth + sDay + Form1.Pais

sLogFormat = DateTime.Now.ToShortDateString().ToString() + ” ” + DateTime.Now.ToLongTimeString().ToString() + ” ==> ”

Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(sPathName.Replace(“.”, “.” + sErrorTime + “.”), True)
sw.WriteLine(sLogFormat + sErrMsg)
sw.Flush()
sw.Close()

Catch ex As Exception
Dim fi As System.IO.FileInfo = New System.IO.FileInfo(sPathName)
System.IO.Directory.CreateDirectory(fi.DirectoryName)
ErrorLog(sPathName, sErrMsg)
End Try

End Sub

y para llamarla solamente ponemos en nuestro codigo:

Try

‘Aquí va tu proceso completo…

Log(DirDelLog, String.Format(“Terminó proceso -:'{0}'”, variableproceso), False)
Catch ex As Exception
Log(DirDelLog, String.Format(“Error  – ‘{0}'”, ex.Message), False)
End
End Try

Las variables que le mandas a tu función son:

DirDelLog – que lo puedes obtener simplemente con :

Public Shared DirDelLog As String = IO.Path.GetDirectoryName(Application.ExecutablePath) + “\Logs\Log.txt”

una varible String – que es el mensaje de error

Bandera  – True si quieres que te mande un MessageBox o false si solamente quieres que lo escriba en el log más no te mande la ventanita del mensaje.

Espero sea de utilidad

Loading Facebook Comments ...

4 comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Para evitar SPAM realiza la siguiente operación: *