Si por alguna razon tienes la necesidad de escribir los errores que genera tu aplicacion en un archivo .txt este codigo puede ser de utilidad.
Public Class LogError
#Region «Write To HD Functions»
»’ <summary>
»’ Description: Write to Hd the Errors
»’ Date : 26/2/2007
»’ Revisions : Emilio Vicente Martinez Vazquez
»’ </summary>
»’ <param name=»Text»></param>
»’ <remarks></remarks>
Public Shared Sub WriteFile(ByVal Text As String)
Dim strStream As System.IO.Stream
Dim strStreamWriter As System.IO.StreamWriter = Nothing
Dim strStreamReader As System.IO.StreamReader = Nothing
Dim str As String = Nothing
Try
Dim FilePath As String = AppDomain.CurrentDomain.BaseDirectory.ToString() + «SurveyLog.txt»
If System.IO.File.Exists(FilePath) = True Then
strStreamReader = System.IO.File.OpenText(FilePath)
str = strStreamReader.ReadToEnd()
strStreamReader.Close()
End If
strStream = System.IO.File.OpenWrite(FilePath)
strStreamWriter = New System.IO.StreamWriter(strStream, _
System.Text.Encoding.UTF8)
If str = «» Then
strStreamWriter.WriteLine(DateTime.Now.ToString)
strStreamWriter.WriteLine(Text)
Else
str = str + Text
strStreamWriter.WriteLine(str)
strStreamWriter.WriteLine(DateTime.Now.ToString)
strStreamWriter.WriteLine(» «)
strStreamWriter.WriteLine(» «)
strStreamWriter.WriteLine(» «)
End If
strStreamWriter.Close()
Catch ex As Exception
strStreamWriter.Close()
strStreamReader.Close()
End Try
End Sub
#End Region
End Class
No quiero pecar de resabido, pero cargar el contenido de todo el fichero en un string para volver a escribirlo ¿no es un poco ineficiente?
Yo utilizo esto, a lo mejor estoy equivocado, pero creo que es más optimo.
If Not String.IsNullOrEmpty(sTexto) Then
Dim sFileLog As New System.IO.StreamWriter(Application.StartupPath & «fichero.log», True)
sFileLog.WriteLine(Date.Now.ToString & «·» & «: » & sTexto)
sFileLog.Close()
End If
Me parece excelente tu observacion. Saludos!
Yo empece tb escribiendo una clase para crear un log, hasta q encontre log4net, es realmente potente.
Permite almacenar el log, en ficheros de texto, que se empiece a crear un log cuando sobre pasa determinado peso, almacenarlo en una determinada base de datos, enviar un email con el log etc… Hasta si no te sirven los logs implementados puedes crearlo simplemente implementando una determinada interfaz…
Vivan los ports! 😉
Pues otra opcion es EntLib, puedes desterminar el tipo de repositorio para el log (archivo de texto, base de datos, MSMQ, mail, etc) y además tiene mil opciones dependiendo el caso.
Saludos