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
ytomcat-juli-adapters.jar
tomcat-juli.jar
desde "extras" - ponga
log4j-api-2.1.jar
,log4j-core-2.1.jar
,log4j-jul-2.1.jar
ytomcat-juli-adapters.jar
de "extras" en$CATALINA_HOME/lib
. - reemplace
$CATALINA_HOME/bin/tomcat-juli.jar
contomcat-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
). Altercatalina.sh
para garantizar que classpath incluyebin/tomcat-juli.jar
,lib/log4j-jul-2.1.jar
,lib/log4j-api-2.1.jar
ylib/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í.
- 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
- Reemplazar $ CATALINA_HOME / bin / tomcat-juli.jar existente con el tomcat-juli.jar de tomcat extras
- Eliminar el archivo $ CATALINA_HOME / conf / logging.properties
- 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 /
- cp log4j-api-2.9.1.jar / opt / tomcat / libs /
- cp log4j-core-2.9.1.jar / opt / tomcat / libs /
- cp log4j-jul-2.9.1.jar / 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