2010-03-26 18 views
5

Mi procedimiento para usar log4j es la siguiente:archivo de propiedades log4j: cómo configurar?

  1. puso una .properties archivo en algún lugar de una carpeta de proyecto
  2. en un método de inicialización, que se ejecuta sólo una vez, invocar PropertyConfigurator.configure ("vía_al_archivo")
  3. en cada método que tenemos que utilizar registrador definimos una variable estática registrador y simplemente invocamos getLogger (clase)

¿Es esto correcto? ¿Qué sucede si el módulo de inicialización no está definido? ¿Dónde puedo poner el archivo "log4j.properties" de modo que no tenga que invocar propertyconfigurator.configure? Si eso no es posible, ¿está bien invocar PropertyConfigurator.configure ("path_to_file") en todos los métodos que utilizan un registrador?

Respuesta

10

Si lo coloca en algún lugar de la ruta de clases, Log4J lo cargará automáticamente. Un lugar típico para ello es el directorio raíz de origen (o recurso). De esta forma, también puede copiarse en el directorio raíz de tu jar (si creas uno de tus archivos de clase).

Los detalles exactos dependen del sistema de compilación que utilice. P.ej. en Maven la convención es ponerlo en src/main/resources.

+0

@ Péter Török Ok, esa es una pregunta diferente, pero en una frase, una classpath por defecto, sin proporcionar la opción -classpath java, ¿incluye qué carpetas de un archivo .jar? – EugeneP

+0

@EugeneP Acabo de cubrir esto en mi actualización :-) –

3

El procedimiento de inicialización predeterminado para log4j está documentado en this section del tutorial log4j. Esto explica en detalle los pasos que toma log4j para localizar la configuración de registro.

La forma más sencilla de configurar log4j es colocar un archivo de propiedades en algún lugar que permita que el cargador de clases lo encuentre con el nombre "/log4j.properties". Hay otros enfoques que puede utilizar también que implican establecer propiedades del sistema, cargar el archivo de propiedades mediante programación o incluso crear instancias de los registradores, anexadores, etc. a través de las API log4j. (No es que esto último sea una buena idea ...)

(Poner el archivo de propiedades log4j en "src/main/resources" en un proyecto Maven es solo una de las varias maneras posibles de obtener el archivo en su raíz de classpath de la aplicación.)

Cuestiones relacionadas