Tengo un problema con la configuración de log4j.

Antes de Maven paquetes de mi aplicación en la guerra de archivo, se ejecuta pruebas. Y configuración de log4j se carga y se utiliza – el archivo de registro se crea y mensajes están escritos en ella y en la consola.

Hay log4j la salida de depuración en la consola:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.[email protected].
log4j: Trying to find [log4j.xml] using sun.misc.[email protected] class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.[email protected].
log4j: Using URL [file:/C:/dev/workspace/paymentsystemsstub/target/classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/C:/dev/workspace/paymentsystemsstub/target/classes/log4j.properties
log4j: Parsing for [root] with value=[WARN, file, stdout].
log4j: Level token is [WARN].
log4j: Category root set to WARN
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{dd MMM yyyy HH:mm:ss,SSS} [%c] [%-5p] %n%m%n].
log4j: End of parsing for "file".
log4j: Setting property [file] to [C:\tomcat\log/paymentSystemsStub.log].
log4j: Setting property [maxBackupIndex] to [1].
log4j: Setting property [maxFileSize] to [1MB].
log4j: setFile called: C:\tomcat\log/paymentSystemsStub.log, true
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Parsing appender named "stdout".
log4j: Parsing layout options for "stdout".
log4j: Setting property [conversionPattern] to [%d{HH:mm:ss,SSS} [%c] [%-5p] %n%m%n].
log4j: End of parsing for "stdout".
log4j: Parsed "stdout" options.
log4j: Parsing for [com.panbet.paymentstub] with value=[DEBUG].
log4j: Level token is [DEBUG].
log4j: Category com.panbet.paymentstub set to DEBUG
log4j: Handling log4j.additivity.com.panbet.paymentstub=[null]
log4j: Finished configuring.

Pero cuando me implementar generado por la guerra de archivo en Tomcat, veo que la configuración de log4j se carga en el archivo de registro se crea, pero los mensajes no están escritas en ella o en la consola:

Hay log4j la salida de depuración:

log4j: Trying to find [log4j.xml] using context classloader WebappClassLoader
context: /paymentstub
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.[email protected]
.
log4j: Trying to find [log4j.xml] using WebappClassLoader
context: /paymentstub
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.[email protected]
class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader WebappClassLoader
context: /paymentstub
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.[email protected]
.
log4j: Using URL [file:/C:/tomcat/webapps/paymentstub/WEB-INF/classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/C:/tomcat/webapps/paymentstub/WEB-INF/classes/log4j.properties
log4j: Parsing for [root] with value=[WARN, file, stdout].
log4j: Level token is [WARN].
log4j: Category root set to WARN
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{dd MMM yyyy HH:mm:ss,SSS} [%c] [%-5p] %n%m%n].
log4j: End of parsing for "file".
log4j: Setting property [file] to [C:\tomcat\log/paymentSystemsStub.log].
log4j: Setting property [maxBackupIndex] to [1].
log4j: Setting property [maxFileSize] to [1MB].
log4j: setFile called: C:\tomcat\log/paymentSystemsStub.log, true
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Parsing appender named "stdout".
log4j: Parsing layout options for "stdout".
log4j: Setting property [conversionPattern] to [%d{HH:mm:ss,SSS} [%c] [%-5p] %n%m%n].
log4j: End of parsing for "stdout".
log4j: Parsed "stdout" options.
log4j: Parsing for [com.panbet.paymentstub] with value=[DEBUG].
log4j: Level token is [DEBUG].
log4j: Category com.panbet.paymentstub set to DEBUG
log4j: Handling log4j.additivity.com.panbet.paymentstub=[null]
log4j: Finished configuring.

Hay archivos log4j.properties en la carpeta WEB-INF\classes y log4j-1.2.17.jar en la carpeta WEB-INF\lib (de aquí y aquí deberían estar allí).

Me pase una ruta absoluta donde crear el archivo de registro como una JVM de propiedad.

No es mi log4j.properties de archivo:

# Set root logger level to WARN and its appenders to file and stdout
log4j.rootLogger=WARN, file, stdout
# stdout is set to be a ConsoleAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# stdout uses PatternLayout
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%c] [%-5p] %n%m%n
# file is set to be a RollingFileAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${stubLog}/paymentSystemsStub.log
log4j.appender.file.MaxFileSize=1MB
# Keep one backup file
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} [%c] [%-5p] %n%m%n
# Print only messages of level DEBUG or above in the package com.panbet.paymentstub
log4j.logger.com.panbet.paymentstub=DEBUG

Estoy usando Windows 7, Eclipse, Tomcat 7, Maven y Log4j 1.2.

Me la pase todo el dia tratando de averiguar lo que está mal y aún no tienen idea.

Actualización

Estoy tan confundido! Su vez, que los métodos que se invoca no registro nada! Yo estaba tan seguro de que lo hacen… lo Siento por molestar.

Esto es algo offtopic, pero ¿por qué log4j? Uso logback lugar!
Porque es un requisito. Yo la use.
¿Tienes alguna de las excepciones en <TOMCAT_HOME>\logs\catalina.out?
No, yo no
Entonces por todos los medios que esto debería funcionar. Sólo para excluir cualquier posibilidad, al decir que los mensajes no han sido registrados, en realidad te has accedido a su aplicación, de manera que al menos un par de métodos de registro que algo se invoca, ¿verdad?

OriginalEl autor Julia | 2013-11-14

3 Comentarios

  1. 2

    Pasos para hacer Tomcat trabajo con log4j

    • Descargar los dos archivos de extras en tomcat sección de descarga

      tomcat-juli.jar tomcat-juli-adapters.jar

    • Copia tomcat-juli.jar $CATALINA_HOME\bin para reemplazar el viejo
    • Copia tomcat-juli-adapters.jar $CATALINA_HOME\lib
    • Descargar log4j lib y copiarlo a $CATALINA_HOME\libs.
    • Eliminar el registro.propiedades en $CATALINA_HOME\conf
    • Crear log4j.propiedades en $CATALINA_HOME\libs.
    • Descargar log4j versión mayor de 1,2 y copia a
      $CATALINA_HOME\lib

    Después de que reiniciar tomcat.

    Por favor, no acaba de publicar un enlace a un post del blog como una respuesta. Incluir la información pertinente esto.
    $CATALINA_HOME\libs y $CATALINA_HOME\lib se utilizan. Es un error tipográfico? libs vs lib?
    Por favor, también aclarar qué se entiende por «Descargar log4j versión mayor de 1,2 y copia a $CATALINA_HOME\lib» Que archivo? ls -1 apache log4j-2.0.2-bin/ log4j-1.2-api-2.0.2.jar log4j-api-2.0.2.jar log4j-core-2.0.2.jar log4j-core-2.0.2-tests.jar log4j-flume-ng-2.0.2.jar log4j-jcl-2.0.2.jar log4j-jmx-gui-2.0.2.jar log4j-nosql-2.0.2.jar log4j-slf4j-impl-2.0.2.jar log4j-taglib-2.0.2.jar log4j-to-slf4j-2.0.2.jar log4j-web-2.0.2.jar
    Me refiero a la versión de descarga log4j-1.2.17.jar. Cuando escribí esta guía log4j 2 todavía en beta

    OriginalEl autor phamthaithinh

  2. -1

    intente agregar esto a su tomcat lanzador en eclipse como JVM params

    -Dlog4j.rootLevel="ERROR" -Dlog4j.rootAppender="console"
    Este registro es a nivel de aplicación.
    No se soluciona el problema

    OriginalEl autor Abderrazak BOUADMA

  3. -1

    @Julia Tiene que comprobar su $CATALINA_BASE/conf/registro.archivo de propiedades? Usted puede necesitar para eliminarlo de la carpeta de TOMCAT.

    Seguimiento de mi respuesta:

    Creo que su log4j.propiedades de configuración es correcta. El siguiente paso sería comprobar cuál es la situación actual de la configuración de registro que está siendo cargado. Agregar -Dlog4j.debug a su JAVA_OPTS en TOMCAT. En este modo, puede comprobar cómo el log4j es una instancia y se mostrará lo log4j propiedades ha sido cargado. A continuación, intente comprobar la información del tomcat archivos de registro catalina.out o catalina.2013-11-06.log

    No, esto no es necesario. Este registro se define en el nivel de aplicación, no del servidor.
    Ya lo hice. Por favor, lea mi pregunta cuidadosamente.

    OriginalEl autor archetype

Dejar respuesta

Please enter your comment!
Please enter your name here