2009-02-05 22 views
6

¿Cuál es la mejor forma de usar un archivo log4j.properties externo dentro de Grails? Me gustaría utilizar el formato log4j.properties tradicional en lugar de una configuración de estilo log4j.groovy.Uso del archivo log4j.properties externo con Grails

También me llama la atención si la configuración externa funcionará muy bien con el archivo log4j.properties creado por grails war y puesto en el archivo war. Si elimino la configuración de log4j de Config.groovy ¿las log4j.properties aún se incluirán en el archivo war?

+0

volví a visitar este hoy y encontré [esta publicación en el blog] (http://techbeats.deluan.com/how-to-use-an-external-log4jproperties-in-you-0) que ofrece una forma de hacer esto usando el bean Log4jConfigurer de Spring. Si tengo la oportunidad de probarlo, puedo publicar una respuesta. –

Respuesta

3

Mira la Log4J Plugin que establece:.

"Algunos de la vieja escuela desarrolladores de Java son más cómodos con log4j.xml pesar de que el archivo de configuración es mucho más grande Este plugin ofrece una manera de desactivar el Log4J defecto y DSL permite el uso de log4j.xml en el formulario original o en el estilo de Groovy MarkupBuilder ".

No lo he usado por mi mismo, así que no puedo hablar de su usabilidad en el contexto WAR. Simplemente AGREGUE su aplicación, y luego pruébela ... Debería estar debajo de la carpeta WEB-INF en algún lugar obvio. Si eso no funciona, Mingfai en el grails user list probablemente lo pueda ayudar.

+0

+1 Esta es una solución razonable, pero no funcionará para mí, ya que estoy usando Grails 1.0.3 (el complemento solo funciona para 1.1). Una respuesta útil, sin embargo. Gracias. –

4

Si está utilizando la serie 1.0.x:

  • copia War.groovy de $ GRAILS_HOME/scripts a $ APP/scripts
  • comente las líneas 145 y 154 de la War.groovy copiado
  • ponga su log4j.properties en $ APP/grails-app/conf
  • ejecute $ grails war, y le pedirá que elija qué guión de guerra ejecutar, luego elija el local (generalmente n. ° 1).
0

Al menos en la serie 1.0.x (no se registró en 1.1) olvídese del soporte de Grails y confíe directamente en Spring. Solo use el parámetro log4jConfigLocation en web.xml. Más información here

6

En Grails 1 y 2, hay una logging DSL que se configura y se utiliza en una aplicación Web fuera de la caja, así que es conveniente para eliminar el código log4j = { ... } de grails-app/conf/Config.groovy

Si desea utilizar un archivo de configuración externo para iniciar sesión como en una aplicación web Java típica, luego actualice el archivo grails-app/conf/spring/resources.groovy con lo siguiente.

beans = { 
    log4jConfigurer(org.springframework.beans.factory.config.MethodInvokingFactoryBean) { 
     targetClass = "org.springframework.util.Log4jConfigurer" 
     targetMethod = "initLogging" 
     arguments = ["classpath:log4j.properties"] 
    } 
} 

Tenga en cuenta que el nombre del paquete utilizado en la configuración de appender Log4J probablemente no sea el esperado, ya que tendrá un prefijo específico Griales añadió en él ...

WARN grails.app.controllers.org.example.BookController - This is a warn log message from BookController 
ERROR grails.app.controllers.org.example.BookController - This is an error log message from BookController 
Cuestiones relacionadas