[Jde-dev] funciones de logging in jderobot
David Lobato
dav.lobato en gmail.com
Mar Mar 8 17:49:23 CET 2011
Hola,
He realizado una serie de cambios en la clase Component de jderobot para
permitir configurar el nivel de log del componente.
En principio no he modificado el API y no deber�a afectar a nadie. No
obstante, si alguien observa algo raro que lo comente por la lista.
Aprovechando el viaje, ya os pongo un ejemplo de uso para que ve�is la
funcionalidad implementada en referencia a los logs.
Gearbox incluye una clase abstracta llamado gbxutilacfr::Tracer [1] que
implementa una serie de m�todos para que nuestro programa vuelque
informaci�n en forma de trazas. Habitualmente para esto se usa un printf o
similar, pero cuando el sistema es grande, resulta �til definir tipos de
log, de manera que podamos indicar el tipo de la traza para que una vez
ejecutemos nuestro programa podamos elegir que mensajes deben imprimirse por
pantalla y cuales ignorarse.
As�, usando el API de gbxutilacfr::Tracer nuestro programa podr�a hacer:
tracer().debug( "jderobotice::Component: stopping
ComponentThread....");//esta traza es de tipo debug
�
tracer().info( pImpl->context->tag() + ": Component infrastructure thread
created." );//esta traza es de tipo info
Adem�s es posible indicar un nivel para el mensaje, de modo que s�lo se
imprimir�n aquellos mensajes que bajo el nivel configurado. En las llamadas
anteriores podr�amos pasar un valor con el nivel de este mensaje, por
ejemplo 3. Si el nivel configurado del tipo info tiene un valor >= entonces
este mensaje se imprimir�. De esta manera podemos establecer niveles para
los mensajes.
Hasta ahora no era posible configurar los niveles de log que quer�amos
mostrar, si no que se usaban los valores por defecto de
gbxutilacfr::TrivialTracer. As� que he a�adido al constructor de la clase
jderobotice::Component un par�metro extra para pasar una configuraci�n. Esta
configuraci�n no es m�s que un array con gbxutilacfr::NumberOfTraceTypes [3]
en el que decimos el nivel de cada tipo de mensaje. Los valores van de 0 a
10, 0 indica que este tipo de mensajes no se imprimir�n nunca, y 10 que se
imprimir�n todos los mensajes.
Un ejemplo para configurar el nivel de logs:
int tracerConfig[5] = {9,9,9,9,0};
bgfglab::Component component(tracerConfig);
de esta manera se configurar�a el nivel a 9 para todos los tipos de
mensajes.
Espero que os resulte �til,
Un saludo.
David.
[1] http://gearbox.sourceforge.net/classgbxutilacfr_1_1Tracer.html
[2] http://gearbox.sourceforge.net/classgbxutilacfr_1_1TrivialTracer.html
[3]
http://gearbox.sourceforge.net/namespacegbxutilacfr.html#ef6c9166854bf190dfcff7b859cc3213
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20110308/80874cb8/attachment.htm
More information about the Jde-developers
mailing list