sábado, 29 de mayo de 2021

Crear un archivo de log para una aplicación de VB.net

En este post vamos a ver como crear un archivo de Log para una aplicación vb.net que vaya escribiendo cualquier cosa que deseemos en un archivo de texto en la ubicación que queramos.

Primero definimos una variable del tipo streamwriter

Dim swLog As System.IO.StreamWriter

 

Crear un archivo de log para una aplicación de VB.net


En nuestro programa, cada vez que queramos escribir algo en el log lo llamamos así: 

 EscribirLog("-------------ERROR----------------------------")

            EscribirLog("Se ha producido un error: " & ex.Message & Now())

            EscribirLog(strVariable_con_la_información_a_mostrar & " Texto fijo - " & Now())

            EscribirLog("-----------------------------------------")

 

Finalmente las definiciones de para crear el log son estas. Al comienzo del programa llamaremos a AbrirLog, cuando queramos escribir llamamos a EscribirLog y cuando finalice el programa lo cerramos con CerrarLog.

Sub AbrirLog()

Dim strMisDocumentos As String

strMisDocumentos = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

     If Not System.IO.Directory.Exists(strMisDocumentos & "\" & "Logs") Then

            System.IO.Directory.CreateDirectory(strMisDocumentos & "\" & "Logs")

        End If

 

        swLog = New System.IO.StreamWriter(strMisDocumentos & "\Logs\" & Now.ToString("yyyyMMddHHmmss") & ".txt")

        EscribirLog("Usuario: " & Environment.UserName & "  Maquina: " & Environment.MachineName)

        EscribirLog("")

        EscribirLog("-----------------------")

        EscribirLog("  COMIENZO PROCESO")

        EscribirLog("-----------------------")

        EscribirLog("")

        EscribirLog(Now.ToString("dd/MM/yyyy HH:mm:ss") & " - Inicio del proceso")

End Sub

Sub CerrarLog()

        EscribirLog(Now.ToString("dd/MM/yyyy HH:mm:ss") & " - Fin del proceso")

        EscribirLog("")

        EscribirLog("------------------------------------")

        EscribirLog("FIN PROCESO")

        EscribirLog("-------------------------------------")

        EscribirLog("")

        If Not swLog Is Nothing Then

            swLog.Close()

        End If

        swLog = Nothing

End Sub

 

Sub EscribirLog(ByVal texto As String)

        If Not swLog Is Nothing Then

            swLog.WriteLine(texto)

            swLog.Flush()

            Console.WriteLine(texto)

        End If

 End Sub

 

1 comentario: