Public Class RegistroLocal
    Public Shared Sub AñadirAlRegistroLocal(ByVal rutaConNombreDeArchivo As String, ByVal textoQueSeAñade As String)
        Dim i As Integer = 0
        Dim hecho As Boolean = False
        Dim carpeta As String = IO.Path.GetDirectoryName(rutaConNombreDeArchivo)
        Dim archivo As String = IO.Path.GetFileNameWithoutExtension(rutaConNombreDeArchivo)
        Dim extension As String = IO.Path.GetExtension(rutaConNombreDeArchivo)
        Dim fechaHora As String
        Dim nombreArchivoResultante As String
        If Not IO.Directory.Exists(carpeta) Then
            IO.Directory.CreateDirectory(carpeta)
        End If

        While i < 3 AndAlso Not hecho
            i += 1
            fechaHora = Now.ToString("yyyy-MM-dd--HH-mm-ss.fff")
            nombreArchivoResultante = carpeta & "\" & archivo & "-" & fechaHora & extension

            Try
                Using escritor As IO.StreamWriter = IO.File.AppendText(nombreArchivoResultante)
                    escritor.WriteLine(String.Format("{0} {1} {2}{3}", Now.ToShortDateString, Now.ToShortTimeString, Environment.NewLine, textoQueSeAñade))
                End Using
                hecho = True
            Catch ex As Exception
                'Nada, a propósito, ya que está diseñado para usar otro nombre de archivo si hace falta. Siempre debería dejarse registro en archivo.
            End Try
        End While
    End Sub
End Class
