none
crear archivo txt de errores o eventos RRS feed

  • Pregunta

  • Hola!

    Necesito crear un archivo txt de eventos o errores (como un log) en mi aplicacion windows, podrian ayudarme con un ejemplo, gracias


    Salu2 !
    viernes, 11 de marzo de 2011 17:50

Respuestas

  • Pues la idea no es tan complicada solo tienes que crear un archivo de texto y despues escribirle la informacion que deseas , en el ejemplo siguiente es una operacion aritmetica que jenera error ya que no se puede dividir entre cero , cuando se genera el error usamos la clave TRY Catch End Try para que la aplicacion no se cuelgue o se cierre, aqui te dejo el codigo para que lo analizes, el archivo de error se creara en la carpeta mis documentos asique lo puedesbuscar alli para que veas el error que genera .

     

      Private Sub Send_Result()
    
        Try
    
          Dim Val1 As String = "10"
    
          Dim Val2 As Int16 = 0
    
    
          Dim result As Integer = CInt(CDbl(Val1) / Val2)
    
          MsgBox(result)
    
    
        Catch ex As Exception
    
          My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Error Generado.txt", ex.Message & vbNewLine & ex.StackTrace, True)
    
          MsgBox("Error no se puede dividir entre Cero , se ha generado un archivo en la carpeta mis documentos llamado Error Generado.txt el cual contiene detalles del error ")
    
        End Try
    
    
      End Sub
    
      Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Send_Result()
      End Sub

     

     

    espero te sea de ayuda.


    Mark the better answers for you,do not turn off your mind

    Visit http://www.melvinsofts.com

    viernes, 11 de marzo de 2011 22:02
  • hola

    revisa la info de este namespace

     

    System.IO.Log (Espacio de nombres)

    aunque tambein podrias usar un sistema de log

    Opening and Appending to a Log File

    todo estos frameworks loguean a un archivo

    .NET Logging Tools and Libraries

    uno interesante es el Log4Net

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 11 de marzo de 2011 18:29

Todas las respuestas

  • hola

    revisa la info de este namespace

     

    System.IO.Log (Espacio de nombres)

    aunque tambein podrias usar un sistema de log

    Opening and Appending to a Log File

    todo estos frameworks loguean a un archivo

    .NET Logging Tools and Libraries

    uno interesante es el Log4Net

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 11 de marzo de 2011 18:29
  • Pues la idea no es tan complicada solo tienes que crear un archivo de texto y despues escribirle la informacion que deseas , en el ejemplo siguiente es una operacion aritmetica que jenera error ya que no se puede dividir entre cero , cuando se genera el error usamos la clave TRY Catch End Try para que la aplicacion no se cuelgue o se cierre, aqui te dejo el codigo para que lo analizes, el archivo de error se creara en la carpeta mis documentos asique lo puedesbuscar alli para que veas el error que genera .

     

      Private Sub Send_Result()
    
        Try
    
          Dim Val1 As String = "10"
    
          Dim Val2 As Int16 = 0
    
    
          Dim result As Integer = CInt(CDbl(Val1) / Val2)
    
          MsgBox(result)
    
    
        Catch ex As Exception
    
          My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Error Generado.txt", ex.Message & vbNewLine & ex.StackTrace, True)
    
          MsgBox("Error no se puede dividir entre Cero , se ha generado un archivo en la carpeta mis documentos llamado Error Generado.txt el cual contiene detalles del error ")
    
        End Try
    
    
      End Sub
    
      Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Send_Result()
      End Sub

     

     

    espero te sea de ayuda.


    Mark the better answers for you,do not turn off your mind

    Visit http://www.melvinsofts.com

    viernes, 11 de marzo de 2011 22:02
  • HOla, gracias por tu apoyo,

    Me gustaria que se fuera agregando los sucesos en el archivo txt, de esta manera, gracias

    10:31:43 ...  ProgramaCC ........ 22/12/2010
    10:31:43 ...  Inicio del Sistema
    10:31:55 ...  Conexion al servidor establecida
    10:32:56 ...  Archivo enviado: c:\ProgramaCC\Prueba.txt


    Salu2 !
    viernes, 11 de marzo de 2011 23:31
  • Hola el ejemplo q me muestras creo que es con tu aplicacion yo solo te he creado una simulacion de como se procederia , la solucion quedaria de esta manera

     

     Private Sub Send_Result()
    
      Try
    
       
    
       Dim Dir As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Prueba.txt"
    
       Dim Programa = Now.ToShortDateString & "...Programa CC..." & Now.ToShortDateString
    
       Dim Inicio_Delsistema = Now.ToLongTimeString & "...Inicio del sistema"
    
       Dim Connec = Now.ToLongTimeString & "...Conxion al Servidor"
    
       Dim Sendto = Now.ToLongTimeString & " Archivo enviado a: " & Dir
    
    
       Dim WriteInfo As String = Programa & vbNewLine & Inicio_Delsistema & vbNewLine & Connec & vbNewLine & Sendto
    
    
       My.Computer.FileSystem.WriteAllText(Dir, WriteInfo, True)
       
    
      Catch ex As Exception
    
       My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Error Generado.txt", ex.Message & vbNewLine & ex.StackTrace, True)
    
       End Try
    
     End Sub
    
     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      Send_Result()
     End Sub
    Saludos.
    Mark the better answers for you,do not turn off your mind

     

    Visit http://www.melvinsofts.com

    • Propuesto como respuesta Melvindev sábado, 12 de marzo de 2011 5:19
    viernes, 11 de marzo de 2011 23:56
  • mira, o creas una funcion para q la puedas llamar desde cualquier lugar:

     Public Sub ErrorLog(ByVal sError As String)
        Dim oSW As New StreamWriter("D:\Log.txt", True)
        Dim scomando As String = String.Empty
        oSW.WriteLine("! " & Now & " || Error: " & sError)
        oSW.Flush()
        oSW.Close()
     End Sub
    
    

    Julio Avellaneda
    Blog !!

    sábado, 12 de marzo de 2011 2:23
  • Excelente, Quedo Muy Bien el Log

        Public Sub Log(ByVal sMsg As String)
            Dim Ruta As String = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase).Remove(0, 6)
            Dim oSW As New StreamWriter(Ruta & "\Log_Update_Catalog.txt", True)
            Dim scomando As String = String.Empty
            oSW.WriteLine("! " & Now & " || Log: " & sMsg)
            oSW.Flush()
            oSW.Close()
        End Sub

    martes, 17 de abril de 2012 20:45