Clase Para Escribir Log


Objetivo: Clase Para Escribir Log
Buenas estoy desarrollando un ejemplo y me gustaría poder implementar un Log4java, Log4Net ......vamos una clase que pueda invocar para poder generar los respectivos archivos de log. He buscado por el foro y no se muy bien como utilizar print, write ....open etc...existe algún ejemplo sobre estos temas.

Gracias por la ayuda.

Perfil MP  
Objetivo: Re: Clase Para Escribir Log
Amplía con un poco más detalle lo que quieres (no conozco esas herramientas que mencionas), hay algunas cosas por aquí hechas, pero no sé si son lo que necesitas.

Saludos.

Perfil MP  
Objetivo: Re: Clase Para Escribir Log
shordi escribió: [Ver mensaje]
Amplía con un poco más detalle lo que quieres (no conozco esas herramientas que mencionas), hay algunas cosas por aquí hechas, pero no sé si son lo que necesitas.

Saludos.


Buenas mi idea es tener una clase gLog que tenga un método que sea EscribirLog se le pasa por parámetro la pantalla desde donde sucede y el mensaje y e instanciarla desde cualquier formulario y escribir un archivo log.txt con los mensajes que interesen, acceso o errores.

Espero haber explicado mejor mi necesidad.

Gracias.

Perfil MP  
Objetivo: Re: Clase Para Escribir Log
No había nada así hecho (bueno, Sebikull tiene por algún lado en el foro o en la granja, no recuero, un sistema de log, pero nunca lo he usado). Si sólo quieres lo que arriba dices, no es nada complicado. Te he hecho un boceto aquí. Échale un vistazo.

https://foro.gambas-es.org/viewtopic.php?f=5&t=7049

Perfil MP  
Objetivo: Re: Clase Para Escribir Log
' gambas class file

' by postapase

Export

Property Lugar As String '' Devuelve o muestra la carpeta que contiene el archivo de registros.
Property Read Nombre As String '' Devuelve o muestra el nombre del archivo de registros.
Property Read Ruta As String '' Devuelve o muestra la ruta completa del archivo de registros.

Private sLugar As String
Private sNombreX As String
Private sRuta As String


Public Sub _new(sDir As String, sNombre As String) ''sDir= ruta donde se guardará el archivo, sNombre=Nombre del archivo sin extención

If Exist(sDir) = True Then
sLugar = sDir
sNombreX = sNombre
Lugar_Write(sLugar)
sRuta = sLugar &/ sNombre

If Exist(sRuta) = False Then
File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)
Endif
Else
Message.Error("Lugar invalido!")
Return
Endif

End

Private Function Lugar_Read() As String
Return sLugar
End

Private Sub Lugar_Write(Value As String)
sLugar = Value
End

Private Function Nombre_Read() As String
Return sNombreX
End

Private Function Ruta_Read() As String
Return sRuta
End

Public Sub Agregar(Mensaje As String, Optional Xtipo As String) '' Agrega un mensaje al archivo de registros.
Dim ArchivoX As File

If ArchivoRegistroExiste() = False Then Return

If IsNull(Mensaje) Then
Return
Endif

If IsNull(Xtipo) Then Xtipo = Tipo.REG

ArchivoX = Open sRuta For Append
Print #ArchivoX, "[" & Xtipo & "]+(" & Now & ")+" & Mensaje
Close #ArchivoX

End

Public Sub Borrar() '' Borra todo el contenido del archivo de registros (precaucion).

If Access(sLugar, gb.Write) = True Then
If Exist(sRuta) = True Then

Try Kill sRuta

If Error Then Debug Error.Text & " " & Error.Where & " " & Error.Code

File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)

Else
File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)
Endif
Endif

End


Public Sub Filtro(Xtipo As String) As String[]
Dim ArchivoX As File
Dim Linea, Etiqueta As String
Dim Division, errores As String[]
Dim aError As New String[]
Dim aReg As New String[]
Dim aNota As New String[]
Dim aTodo As New String[]
Dim aSql As New String[]

If ArchivoRegistroExiste() = False Then Return

ArchivoX = Open sRuta For Read

While Not Eof(ArchivoX)

Line Input #ArchivoX, Linea

If Left(Linea, 1) <> "[" Then
Continue
Else
Division = Split(Linea, "+")

Etiqueta = Left(Division[0], Len(Division[0]) - 1)
Etiqueta = Right(Etiqueta, Len(Etiqueta) - 1)

Select Case Xtipo
Case Tipo.ERROR
If Etiqueta = Tipo.ERROR Then aError.Add(Linea)
Case Tipo.NOTA
If Etiqueta = Tipo.NOTA Then aNota.Add(Linea)
Case Tipo.REG
If Etiqueta = Tipo.REG Then aReg.Add(Linea)
Case Tipo.SQL
If Etiqueta = Tipo.SQL Then aSql.Add(Linea)
Case Tipo.TODO
aTodo.Add(Linea)
End Select

Endif

Wend

Close ArchivoX

Select Case Xtipo
Case Tipo.ERROR
If aError.Count <= 0 Then Return
Return aError
Case Tipo.NOTA
If aNota.Count <= 0 Then Return
Return aNota
Case Tipo.REG
If aReg.Count <= 0 Then Return
Return aReg
Case Tipo.SQL
If aSql.Count <= 0 Then Return
Return aSql
Case Tipo.TODO
If aTodo.Count <= 0 Then Return
Return aTodo
Case Else
End Select

End

Private Sub ArchivoRegistroExiste() As Boolean

If Not Exist(sRuta) Then
Debug "Archivo no existe(" & sRuta & ")"
Return False
Else
Return True
Endif

End




esta en la granja con nombre 'Registro'

Objetivo: Re: Clase Para Escribir Log
' gambas module file

Public log As File

Public RutaLog As String = vp.DirConfig
Public Const ERROR_COMUN As String = "ERROR_COMUN"
Public Const ERROR_IMPORTANTE As String = "ERROR_IMPORTANTE"
Public Const ERROR_GRAVE As String = "ERROR_GRAVE"
Public Const REGISTRO As String = "REGISTRO"
Public Const ADVERTENCIA As String = "ADVERTENCIA"

' Private NomArch As String = "logsVisor"

Public Sub Activar()

If Not Exist(RutaLog &/ "logsVisor") Then
log = Open RutaLog &/ "logsVisor" For Create
Close #log
Endif

Catch
Message.Error(Error.Text & gb.NewLine & Error.Where)

End

Public Sub Agregar(importancia As String, mensaje As String, Optional donde As String, Optional codigo As String)

log = Open RutaLog &/ "logsVisor" For Append
'FIXME: y las lineaS de imprecion??? 21 jun 2018
Print mensaje
Close #log

Catch
Message.Error(Error.Text & gb.NewLine & Error.Where)

End

Public Sub BorrarRegistros()

log = Open RutaLog &/ "logsVisor" For Create

Close #log

Catch
Message.Error(Error.Text & gb.NewLine & Error.Where)

End



otra forma esta a medio terminar pero te servirá algunas partes del código y lo adaptaras a tu gusto.

Objetivo: Re: Clase Para Escribir Log
shordi escribió: [Ver mensaje]
No había nada así hecho (bueno, Sebikull tiene por algún lado en el foro o en la granja, no recuero, un sistema de log, pero nunca lo he usado). Si sólo quieres lo que arriba dices, no es nada complicado. Te he hecho un boceto aquí. Échale un vistazo.

https://foro.gambas-es.org/viewtopic.php?f=5&t=7049


Es el componente gb.logging. Permite hacer la mayoria de las cosas que las librerias de logging de java como las que mencionas, o de python. Viene incluido por defecto en todas las instalaciones de gambas. Si necesitas ayuda para usarlo avisame! Con la documentacion en la wiki deberias poder resolver todos tus problemas.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.222s (PHP: 27% SQL: 73%)
Consultas SQL: 23 - Debug off - GZIP Activado