Tengo log4j DSL configurado correctamente en mi Config.groovy en una aplicación de grial. Al ejecutar la aplicación con grails, la ejecución de la aplicación descarga el registro perfecto tal como lo especifiqué en la DSL. Sin embargo, después de hacer una guerra de griales para generar un archivo war y desplegarlo en tomcat, el registro simplemente desaparece. No puedo verlo funcionando en ninguna parte, excepto en la consola de tomcat que muestra millones de instrucciones de registro en el nivel de depuración y nada específico de mi registro en los archivos de registro.Grails WAR en Tomcat "Log4J" no funciona en absoluto
log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name: "tomcatLog", datePattern: "'.'yyyy-MM-dd", file: "${logDirectory}/snm.log".toString(), layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
}
root {
info 'stdout', 'tomcatLog'
additivity = true
}
info 'grails.app',
'grails.app.controller',
'grails.app.bootstrap',
'grails.app.service',
'grails.app.task',
'commons',
'jsontwitter'
}
¿Puede usted explicar la DSL arriba? Envía registros de clases de commons. * Y jsontwitter. * Al archivo de registro designado, pero no se guarda en el archivo el controlador, el registro de servicios.
Gracias, Alam Sher
Esto hace el registro para mí. Pero como he actualizado la pregunta, ¿pueden echar un vistazo a la DSL que especifiqué para mi registro y decirme qué podría estar mal con esto, ya que no hay registros de servicios, dominios, controladores que vayan a los appenders designados a excepción de la realidad? paquetes, por ejemplo bienes comunes y jsontwitter. También en catalina.out todo se está anexando pero con un gran nivel de DEPURACIÓN también :( Esto es algo muy confuso para mí. –
Creo que las definiciones de paquete en su DSL son incorrectas. Necesita eliminar el prefijo "grails.app". Así que si su clase de dominio está ubicada en el paquete com.mycompany.abc.MyCoolDomainClass, debe usar com.mycompany.abc en el DSL. Si aún no usa paquetes en sus clases de dominio, controllerlerer, etc. se recomienda usar siempre paquetes y nunca poner nada en el paquete raíz. –