En particular ahora estaba desarrollando una aplicación para Android y tuve algun problema dificil de identificar. Usando una herramienta para procesar el "log" de la aplicación pude encontrar y corregir rapidamente el problema.
Independientemente de que se tenga o no problema, el manejar el "logging" puede ayudar en optimizaciones, chequear qué servicios se están consumiendo desde la aplicación, qué datos viajan, etc.
Funcionamiento de log en Android
Las aplicaciones en Android envian mensajes a un "log genérico" del device con diferentes niveles (info,warning, error, etc), el cual se va almacenando en el propio dispositivo.Luego hay herramientas para leer/filtrar, etc ese log.
Es decir, no es un log "especifico" de las aplicaciones Genexus sino que simplemente las aplicaciones Genexus envian mensajes "estándar" a ese log.
CatLog
En particular yo use CatLot que permite visualizar, filtrar, salvar, salvar, etc la info toda o parte de la info que está en ese log:¿Cómo usarlo con apps Genexus?
Como hay mucha información en el log lo que a mi me resultó más práctico es:1. Identificar los mensajes de mi aplicación
2. Filtrar y/o salvar los mismos y luegos enviarlos por mail
3. Procesarlos en el PC.
1. Identificar los mensajes de mi aplicación
Si la aplicación está ejecutando estará enviando mensajes al log, por lo cual para encontrar los mensajes de mi aplicación lo que puedo hacer es usar el "search" y buscar por ejemplo "Genexus" o "GenexusApplication":Una vez que identifiqué algun mensaje hago un "long tap" sobre uno de ellos y aparece un popup que me permite buscar por "process id" (o sea, no solo los mensajes que digan "GenexusApplication" sino todos los mensajes de mi aplicación):
Ahi aparecerán entonces todos los mensajes de mi aplicación:
2. Filtrar/Enviar por mail
Una vez que tengo la lista de mensajes de mi aplicación, los puedo filtrar por otros criterios (nivel: error, warning, etc), salvar el log, etc.Yo normalmente lo que hago es salvar el log entero de mi aplicación y enviarmelo por mail (el Catlog tiene esas opciones).
3. Procesarlos en el PC
Teniendo el log en mi PC es más práctico para procesarlo. Ahi dependiendo el problema o lo que quiera hacer es como sigo, puedo buscar por el nombre de un objeto, por "error", etc.En fin, depende del escenario.
Por ejemplo: para ver qué servicios REST se están consumiendo, con qué parámetros, etc.
Un ejemplo de un tramo de log: URI='http://labs.genexus.com:8080/Vdir/rest/WorkWithDevicesCompany_Company_Section_General?CompanyId=13820&fmt=json'> 11-09 22:22:22.375 D/EntityService(566): Task DEQUEUE: 11-09 22:22:22.375 I/GeneXusApplication(566): GetData from http://labs.genexus.com:8080/Vdir/rest/WorkWithDevicesCompany_Company_Detail?CompanyId=13820&fmt=json
Si en mi caso tengo problemas accediendo a ese servicio desde el device, entonces copiando esa misma URL (http://labs.genexus.com:8080/Vdir/rest/WorkWithDevicesCompany_Company_Detail?CompanyId=13820&fmt=json) en un Browser puedo ver si desde el PC está accesible y qué está devolviendo el server.
También podria acceder a ese servicio desde el propio Browser del Device para ver si desde el device está accesible, etc, etc.
En fin, lo antes dicho: depende de lo que busco.
¿Está solo disponible en el Device?
No, también se puede usar con el emulador. Funciona de modo similar.Para hacerlo ejecutarlo:
1. En un command prompt ejecutar:c:\directorio_donde_esta_SDK\platform-tools\adb logcat > log.txt
2. Ejecutar la aplicación (F5 en Genexus)
3. Cuando se quiera para el "log" se da Ctrl+C en el command prompt y "corta" el log
En el archivo log.txt queda toda la información.
En este otro post hay algo similar pero para IOS: http://tips.genexus.com/2012/07/ios-ver-interaccion-entre-dispositivo-y.html
ResponderEliminarHay una forma práctica de acceder a ese mismo log directamente desde el PC. Sirve para cuando estas utilizando el emulador o dispositivo conectado al PC.
ResponderEliminarEs ejecutando este utilitario:
C:\\tools\ddms.bat
Luego seleccionas el device/emulador que aparece en la lista y ya aparece todo el stack de llamadas.
Pablo Mazzilli
Quedo mal la ruta en el comentario anterior, es el directorio Tools debajo de la instalación del SDK de Android.
ResponderEliminarGracias pablo. Si, el DDMS yo lo uso para capturar las pantallas del device cuando lo tengo conectado.
ResponderEliminar