Grails: log stacktrace to stdout
Cuando lanzo mi aplicación de griales, recibo el siguiente error:
java.io.FileNotFoundException: stacktrace.log (Permiso denegado)
Sé que esto se puede resolver mediante la recopilación de algunos archivos / directorios o al cambiar el archivo al que van los registros, pero no quiero que esto ocurra: solo quiero que se registren stracktraces en la salida estándar.
losdocumentación estados
Por ejemplo, si prefiere los seguimientos completos de la pila para ir a la consola, agregue esta entrada:
error stdout: "StackTrace"
Sin embargo: también establece:
Esto no evitará que Grails intente crear el archivo stacktrace.log, simplemente redirige a donde se escriben los seguimientos de la pila.
Y después:
o, si no desea en absoluto el appender 'stacktrace', configúrelo como un appender 'nulo':
log4j = {
appenders {
'null' name: "stacktrace"
}
}
Combino los 2 y obtengo la siguiente configuración:
// log4j configuration
environments {
production {
log4j = {
appenders {
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
// Don't use stacktrace.log
'null' name: "stacktrace"
}
}
}
}
log4j = {
// print the stacktrace to stdout
error stdout:"StackTrace"
}
Desafortunadamente, esto no funciona:
INFO: Implementando el archivo de aplicación web MyBackend.war
12 de septiembre de 2012 4:46:11 PM org.apache.catalina.core.StandardContext start
SEVERO: Error listenerStart
12 de septiembre de 2012 4:46:11 PM org.apache.catalina.core.StandardContext start
GRAVE: el inicio del contexto [/ MyBackend2] falló debido a errores previos
Es cierto que ya no intenta escribir stacktrace.log, por lo que el error de Permiso denegado ya no se produce, pero no tengo idea de por qué la aplicación no se inicia porque lo único que registra es "Error listenerStart"
¿Alguien puede ayudarme con la configuración de mi aplicación para simplemente registrar los stacktraces a la salida estándar?