Como agregar la pila de llamadas (Call Stack) al log de una aplicación GeneXus


 Cuando estamos monitoreando aplicaciones distribuidas (en varias webapps o en varios nodos) es util tener centralizado el manejo de los logs de errores, de forma de poder ver en un unico lugar todos los errores que esta dando la aplicación. Esto es particularmente neceario cuando tenemos parte de nuestra aplicacion instalada de forma serverless. 

Para hacer mas facil la identificacion de las causas de los problemas, lo que he visto que funciona bien, es mandar los ERRORS (y FATAL) y agregar a los mismos el Call Stack. 

Para lograrlo, alcanza con agregar 

%stacktrace{level}

y cambiar level por el numero de niveles de la pila de llamada que quiero que muestre el log. 

Por ejemplo, hay que cambiar el log.config, en la linea


        <layout  type="log4net.Layout.PatternLayout">

           <conversionPattern  value="%d{ISO8601} [%t] %-5p %c - %m  %stacktrace{10}%n"/>

        </layout>


De esta forma, cada vez que haga

Log.Error('Se produjo un error')

en mi aplicacion GeneXus, se va a grabar tambien la pila de llamadas que va a facilitar la deteccion del motivo del error. 



Comentarios

  1. Gracias, Consulta: Ese código que pones de ejemplo es solo para .net o tb sirve para java?... a nivel de la KB también se deberia activar una propiedad me imagino no ?

    ResponderBorrar
  2. Estas usando la forma de almacenar el log en archivos?, en mi caso no me gusta mucho eso, ya que debo generar logs que estén disponibles para ser visualizados desde cualquier lugar y no solo de uno o múltiples archivos. Por ello los generamos en bd. Hasta ahora de parte de GX o de alguien que use GX, una alternativa así.

    ResponderBorrar
    Respuestas
    1. Depende de la aplicacion.
      En algunas usamos logstash / elasticsearch / kibana. En otras Kb chicas, guardamos en archivos..

      Borrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.