Buenos ejemplos usando java.util.logging [cerrado]

Resuelto Renato Dinhani asked hace 13 años • 0 respuestas

Quiero utilizar registros en mi programa. Escuché sobre java.util.logging , pero no sé cómo empezar.

¿Hay algún ejemplo de lo que puedo hacer con el registro? ¿Cómo usaría el inicio de sesión en mi propio programa?

Renato Dinhani avatar May 10 '11 20:05 Renato Dinhani
Aceptado

java.util.loggingevita que tengas que cargar un archivo jar más con tu aplicación y funciona bien con un buen formateador.

En general, en la parte superior de cada clase , deberías tener:

private static final Logger LOGGER = Logger.getLogger( ClassName.class.getName() );

Luego, puede utilizar varias funciones de la clase Logger .


Úselo Level.FINEpara cualquier cosa que esté depurando en el nivel superior del flujo de ejecución:

LOGGER.log( Level.FINE, "processing {0} entries in loop", list.size() );

Utilice Level.FINER/ Level.FINESTdentro de bucles y en lugares donde no siempre necesite ver tantos detalles al depurar problemas de flujo básicos:

LOGGER.log( Level.FINER, "processing[{0}]: {1}", new Object[]{ i, list.get(i) } );

Utilice las versiones parametrizadas de las funciones de registro para evitar generar toneladas de basura de concatenación de cadenas con las que GC tendrá que mantenerse al día. Object[]como lo anterior es barato, generalmente en la asignación de pila.


Con el manejo de excepciones, registre siempre los detalles completos de la excepción:

try {
    ...something that can throw an ignorable exception
} catch( Exception ex ) {
    LOGGER.log( Level.SEVERE, ex.toString(), ex );
}

Siempre paso ex.toString()el mensaje aquí, porque luego, cuando " grep -n" para " Exception" en los archivos de registro, también puedo ver el mensaje. De lo contrario, estará en la siguiente línea de salida generada por el volcado de pila, y también debe tener una expresión regular más avanzada para que coincida con esa línea, lo que a menudo le brinda más salida de la que necesita revisar.

grwww avatar May 08 '2013 19:05 grwww

Debería declarar el registrador así:

private final static Logger LOGGER = Logger.getLogger(MyClass.class.getName());

entonces, si refactorizas el nombre de tu clase, sigue.

Escribí un artículo sobre el registrador de Java con ejemplos aquí .

hanoo avatar Oct 30 '2012 06:10 hanoo