see per logs logger log how errores application tomcat logging log4j2 tomcat-juli

per - tomcat 7 registro interno con log4j2.xml



tomcat logger (3)

Mi error, necesité incluir $CATALINA_BASE/lib en classpath para que log4j2.xml fuera recogido.

Estoy intentando configurar el registro interno de tomcat 7 con log4j2 . He seguido la respuesta proporcionada en las clases del servidor de registro en Tomcat 6 con log4j2 .

Estoy usando tomcat 7.0.54 y log4j-core-2.1.jar , log4j-api-2.1.jar . He descargado los extras e hice todos los pasos a continuación, pero cuando inicio tomcat, aparece un error:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

Estos son los pasos que realicé:

  • poner log4j2.xml en $CATALINA_BASE/lib
  • descargar tomcat-juli.jar y tomcat-juli-adapters.jar tomcat-juli.jar desde "extras"
  • ponga log4j-api-2.1.jar , log4j-core-2.1.jar , log4j-jul-2.1.jar y tomcat-juli-adapters.jar de "extras" en $CATALINA_HOME/lib .
  • reemplace $CATALINA_HOME/bin/tomcat-juli.jar con tomcat-juli.jar de "extras".
  • eliminar $CATALINA_BASE/conf/logging.properties
  • configure el administrador de registro para usar el administrador desde el puente log4j2-jul ( log4j-jul-2.1.jar ). Alter catalina.sh para garantizar que classpath incluye bin/tomcat-juli.jar , lib/log4j-jul-2.1.jar , lib/log4j-api-2.1.jar y lib/log4j-core-2.1.jar , y El comando usado para iniciar tomcat incluye -Djava.util.logging.manager = org.apache.logging.log4j.jul.LogManager`

Incluso traté de agregar esto ( LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_HOME/lib/log4j2.xml" ) en catalina.sh pero no funcionó.

Por favor, avíseme si alguien podría configurarlo con éxito.


Di los siguientes pasos y funcionó para mí.

  1. Pon los siguientes jar en $ CATALINA_HOME / lib
    • log4j 2 core (log4j-core-2.4.1.jar)
    • log4j 2 api (log4j-api-2.4.1.jar)
    • log4j 2 bridge para log4 j 1.0 (log4j-1.2-api-2.4.1.jar)
    • tomcat-juli-adapters.jar de tomcat extras
  2. Reemplazar $ CATALINA_HOME / bin / tomcat-juli.jar existente con el tomcat-juli.jar de tomcat extras
  3. Eliminar el archivo $ CATALINA_HOME / conf / logging.properties
  4. Coloque el nuevo archivo de configuración log4j 2 (log4j2.xml) en $ CATALINA_HOME / lib

El truco es seguir la documentación oficial de tomcat 7 para configurar log4J 1.X, pero en su lugar usar artefactos de log4j2. Además, esta solución no requiere ningún cambio en $ CATALINA_HOME / bin / catalina.sh ni en ningún otro archivo $ CATALINA_HOME / bin


Adapte lo siguiente para su instalación:

Mi Tomcat 8.5.x se encuentra en / opt / tomcat /

1. Copie los archivos jar de log4j2 en / opt / tomcat / libs /

(Para Windows usa copia)

2. Crea /opt/tomcat/conf/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> <Configuration status="OFF"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} – %m%n"/> </Console> </Appenders> <Loggers> <Logger name="*" level="trace"> <AppenderRef ref="Console"/> </Logger> <Root level="info"> <appenderRef ref="Console" level="info"/> </Root> </Loggers> </Configuration>

3. Cree o edite /opt/tomcat/bin/setenv.sh o /opt/tomcat/bin/setenv.bat

Sin CLASSPATH establecido en setenv.sh/bat, el gestor de arranque Tomcat inicial no podrá acceder a las clases org.apache.logging.log4j.jul.LogManager y log4j2 de la clase. Establecer CLASSPATH antes de iniciar Tomcat no afecta al gestor de arranque inicial de Tomcat, ya que catalina.sh/bat desactivó CLASSPATH antes de ejecutar setenv.sh/bat

#The environment variable CLASSPATH is unset in catalina.sh/catalina.bat CLASSPATH=/opt/tomcat/libs/log4j-api-2.9.1.jar:/opt/tomcat/libs/log4j-core-2.9.1.jar:/opt/tomcat/libs/log4j-jul-2.9.1.jar JAVA_OPTS=-Dlog4j.configurationFile=/opt/tomcat/conf/log4j2.xml LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

4. Vea los registros en /opt/tomcat/log/catalina.out y observe el prefijo LOGJ2 del log42.xml

LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server built: Sep 28 2017 10:30:11 UTC LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server number: 8.5.23.0 LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Name: Linux LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Version: 4.4.0-93-generic LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Architecture: amd64