Quiero usar registros en mi programa. Escuché sobre java.util.logging , pero no sé cómo comenzar.
¿Hay algún ejemplo de qué puedo hacer con el registro? ¿Cómo usaría el registro en mi propio programa?
java
logging
java.util.logging
Renato Dinhani
fuente
fuente
Respuestas:
java.util.logging
evita que tenga que cargar un archivo jar más con su aplicación, y funciona bien con un buen formateador.En general, en la parte superior de cada clase , debe tener:
Luego, puede usar varias instalaciones de la clase Logger .
Úselo
Level.FINE
para cualquier cosa que esté depurando en el nivel superior del flujo de ejecución:Uso
Level.FINER
/Level.FINEST
dentro de bucles y en lugares donde no siempre necesita ver tantos detalles al depurar problemas de flujo básicos:Use las versiones parametrizadas de las instalaciones de registro para evitar generar toneladas de basura de concatenación de cadenas que GC tendrá que seguir.
Object[]
Como arriba es barato, en la pila de asignación por lo general.Con el manejo de excepciones, siempre registre los detalles completos de la excepción:
Siempre paso
ex.toString()
el mensaje aquí, porque cuando "grep -n
" for "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 la pila, y debe tener un RegEx más avanzado para que coincida también con esa línea, que a menudo le brinda más salida de la que necesita mirar.fuente
.fine()
método para iniciar sesión, pero parece que no puedo hacer que los mensajes se muestren ...Debería declarar el registrador de esta manera:
así que si refactoriza el nombre de su clase, sigue.
Escribí un artículo sobre Java Logger con ejemplos aquí .
fuente
Hay muchos ejemplos y también de diferentes tipos para el registro. Eche un vistazo al paquete java.util.logging .
Código de ejemplo:
Sin codificar el nombre de la clase :
fuente
Main.class.getSimpleName()
? De esta manera, la herramienta de refactorización la cambiará correctamente si es necesario y, sin embargo, no es tan torpe como su segunda solución.SLF4J es una mejor fachada de registro que Apache Commons Logging (ACL). Tiene puentes con otros marcos de registro, haciendo que las llamadas directas a ACL, Log4J o Java Util Logging pasen por SLF4J, para que pueda dirigir toda la salida a un archivo de registro si lo desea, con solo un archivo de configuración de registro. ¿Por qué su aplicación usaría múltiples marcos de registro? Porque las bibliotecas de terceros que usa, especialmente las más antiguas, probablemente lo hagan.
SLF4J admite diversas implementaciones de registro. Puede enviar todo a la salida estándar, usar Log4J o Logback (recomendado sobre Log4J).
http://www.slf4j.org/
http://logback.qos.ch/
fuente
Yo usaría minlog , personalmente. Es extremadamente simple, ya que la clase de registro es unos pocos cientos de líneas de código.
fuente
Sugeriría que utilice la utilidad de registro de recursos comunes de Apache. Es altamente escalable y admite archivos de registro separados para diferentes registradores. Vea aquí .
fuente