La aplicación Tomcat dice "No se puede configurar el sistema de registro. No se encontraron log.properties ".

StackOverflow https://stackoverflow.com/questions/1628234

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo una aplicación Tomcat incrustada y cada vez que la inicio veo este error impreso en la consola dos veces:

Unable to configure the logging system.  No log.properties was found.

Parece estúpido, pero busqué en Google y busqué stackoverflow y parece que no puedo encontrar a alguien que experimente este problema.

Mi clase principal se ve más o menos así:

public class AuthServerEntryPoint {
  static {
    org.apache.log4j.PropertyConfigurator.configure("conf/log4j.properties");
  }
public static void main(String[] args) {
  // ...
}

" conf / log4j.properties " contiene una configuración aparentemente válida:

log4j.appender.mainAppend=org.apache.log4j.ConsoleAppender
log4j.appender.mainAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.mainAppend.layout.ConversionPattern=%d %p [%t] %c -- %m%n 

log4j.appender.fileAppend=org.apache.log4j.FileAppender
log4j.appender.fileAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppend.layout.ConversionPattern=%d %p [%t] %c - %m%n 
log4j.appender.fileAppend.file=logs/myservice.log

log4j.rootLogger = info, fileAppend
log4j.logger.com.mycompany.myservice = debug, fileAppend

Y el registro realmente funciona, es decir, los registros se escriben correctamente en myservice.log. Entonces, ¿qué da?

¡Gracias! -Carl

¿Fue útil?

Solución

Por aplicación Tomcat incrustada , ¿quiere decir que está iniciando Tomcat desde el código Java y está utilizando la clase org.apache.catalina.startup.Embedded ?

En caso afirmativo, supongo que Tomcat podría no ser capaz de encontrar su archivo de configuración de registro que está configurado en catalina.sh (o equivalente) al usar los scripts:

LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

La parte extraña es que este archivo se llama logging.properties , no log.properties , así que realmente no estoy seguro. Sin embargo, no revisé las fuentes de Tomcat, tal vez están haciendo algún tipo de magia negra allí.

¿Podría intentar cambiar el nombre de $ CATALINA_BASE / conf / logging.properties en log.properties (o no) y ponerlo en el classpath de su aplicación ( o para configurar -Djava.util.logging.config.file )?

Otros consejos

Por defecto, log4j buscará un archivo de propiedades de registro en el classpath. Coloque el archivo de configuración de propiedades de registro de su aplicación web en su directorio WEB-INF / classes; por ejemplo

$CATALINA_HOME/webapps/<yourApp>/WEB-INF/classes/log4j.properties

Este es el enfoque simple para hacer que una aplicación web use Log4j es recomendado por la documentación referenciada. Y es el enfoque que uso para el registro de aplicaciones web.

Hay varias otras formas de configurar el registro Log4j en Tomcat también. Es posible que su Tomcat se haya configurado (en parte) para usar uno de ellos, pero algo no se ha hecho del todo bien.

Configurar el registro log4j de Tomcat a través de las propiedades del sistema es una opción que evita averiguar dónde se ve log4j ... y qué está yendo mal. Pero luego se queda atascado con la creación / uso de un script de inicio personalizado o con tener que recordar configurar las variables de entorno antes de iniciar Tomcat.

Referencias:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top