log hacer guardar ejemplo crear configurar como archivo java logging log4j apache-commons-logging

java - hacer - ¿Cuál es la importancia de la propiedad log4j.rootLogger en el archivo log4j.properties? ¿Qué pasa si no uso esta propiedad?



log4j guardar en archivo (3)

Contestar

¿Qué pasa si no uso esta propiedad?

Si no configura el rootLogger en un nivel y un appender, recibirá una advertencia.

Por ejemplo, si omite o comenta la línea log4j.rootLogger=DEBUG, stdout , es decir, su archivo log4j.properties solo contiene el registro de raíz y no hay registradores adicionales, aquí el registrador de raíz está siendo comentado:

#log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

Obtendrás algo así como el siguiente resultado:

log4j:WARN No appenders could be found for logger (log4jtests.Log4jHelloWorld). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

¿Cuál es la importancia de la propiedad log4j.properties en el archivo log4j.properties ? ¿Qué pasa si no uso esta propiedad?

Ejemplo :

# Set root logger level to DEBUG and its only appender to A1. log4j.rootLogger=DEBUG, A1 # A1 is set to be a ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender

¿Qué sucede si configuro esta propiedad en modo ERROR ?


Samudra Gupta explica en su libro 1 :

El objeto Logger es el objeto principal que usa un desarrollador de aplicaciones para registrar cualquier mensaje. Los objetos de Logger que actúan dentro de una instancia particular de una aplicación siguen una jerarquía de elementos primarios y secundarios .

Si tiene la siguiente configuración:

log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout log4j.logger.com.me.proj2=INFO

Así es como la jerarquía del registrador podría terminar buscando: 2

Samudra Gupta continúa explicando:

En la parte superior de la jerarquía existe un registrador de raíz. El registrador de raíz existe fuera del alcance de cualquier jerarquía de registrador personalizada que se nos ocurra. Siempre existe como el registrador de raíz para todas las posibles jerarquías de registrador, y no tiene espacio de nombres. Todos los demás objetos Logger específicos de la aplicación son objetos secundarios para el registrador de raíz. La relación padre-hijo de los registradores significa la dependencia de los registradores que actúan dentro de la misma aplicación. Un registrador hijo puede heredar propiedades de su registrador principal de forma recursiva en el árbol. Normalmente, un registrador secundario heredará las siguientes propiedades de su (s) registrador (es) padre (s):

  • Level : si el registrador hijo no tiene un nivel de árbol explícito especificado, usará el nivel de su padre más cercano o el primer nivel apropiado que encuentre de manera recursiva en la jerarquía.
  • Appender : si no hay ningún apéndice conectado a un registrador, el registrador infantil usa el appender de su registrador principal más cercano o el primer apilador que encuentra recursivamente en el árbol.
  • ResourceBundle : ResourceBundles son archivos de propiedades de patrón de clave-valor utilizados para la localización de mensajes de registro. Un registrador hijo hereda cualquier ResourceBundle asociado con su logger padre.

NOTAS

1 Samudra Gupta, Pro Apache Log4j, segunda edición (Berkeley, CA: Apress, 2005), 24-25, ISBN13: 978-1-59059-499-5

2 Dominic Mitchell, iniciando sesión en Java , http://happygiraffe.net/blog/2008/09/03/logging-in-java/ , obtenido el 26 de mayo de 2014.


La propiedad log4j.rootLogger establece el nivel (DEPURACIÓN aquí) y el apéndice (A1 aquí) para el registrador raíz. Esto no es obligatorio Root Logger no tiene un appender predeterminado adjunto y puede existir sin un appender. Por lo tanto, su archivo de propiedades log4j puede tener sin establecerse esta propiedad.

Root Logger es el registrador más alto en la jerarquía log4j similar a la clase Object en Java.