Buenos ejemplos usando java.util.logging [cerrado]
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?
java.util.logging
evita 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.FINE
para 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.FINEST
dentro 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.
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í .