2008-09-25 14 views
17

Tengo varios webapps que usan java.util.logging. Tomcat 5.5 está configurado para usar el registrador Juli de modo que cada aplicación web tenga su propio archivo de registro. El problema es que Juli no tiene propiedades para el tamaño máximo de archivo y el conteo de archivos. Con Juli, los archivos crecerán sin límites y solo se lanzarán al final del día. Además, se conserva una cantidad ilimitada de archivos de registro.¿Cómo configurar el registro de Tomcat JULI para transferir archivos de registro?

Se puede ver las propiedades FileHandler en esta página - Apache Tomcat 5.5 Documentation
No hay límite o recuento de propiedad (las siguientes líneas no hacen nada)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

Sin cambiar las aplicaciones web es que hay una manera de obtener archivos de registro únicos para cada aplicación con algún tipo de límites en los tamaños de archivo de registro?

ACTUALIZACIÓN: ¡La solución que encontré no fue utilizar el registrador de Juli en absoluto! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

Gracias,

Greg

Respuesta

3

Actualización: Veo su punto ahora después de leer más. "La implementación de JULI de Tomcat no pretende ser una librería de registro de funciones completas, solo un puente simple para esas bibliotecas. Sin embargo, JULI proporciona varias propiedades para configurar sus manejadores. Estas se enumeran a continuación". Es curioso que digan que la implementación predeterminada de java.util.Logging es demasiado limitada, por lo que lo solucionan al proporcionar una implementación aún más limitada.

FileHandler javadocs

  • java.util.logging.FileHandler.limit especifica una cantidad máxima aproximada de escribir (en bytes) para cualquier archivo. Si esto es cero, entonces no hay límite. (Por defecto es sin límite).
  • java.util.logging.FileHandler.count especifica la cantidad de archivos de salida a recorrer (por defecto es 1).

para un archivo por aplicación web, es probable que desee separarlo por el nombre del registrador y depende de cómo se crean los registradores para cada aplicación. Si se basan en el nombre del paquete o de la clase, puedes filtrar los registros según eso. Parece que la muestra en el enlace que ya ha proporcionado le indica cómo hacer esto

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \ 
    2localhost.org.apache.juli.FileHandler 
3

EDIT: acabo de dar cuenta que quería por el registro de aplicación de web que podría no ser posible con esta configuración ...

Mi sugerencia, suponiendo que esté utilizando Tomcat 6.0, es compilar el componente adicional para el registro completo de recursos comunes y usar Log4j para configurar los registros continuos.

instrucciones de construcción aquí http://tomcat.apache.org/tomcat-6.0-doc/building.html

luego vuelva a colocar el gato-juli.jar en el directorio/bin de Tomcat y colocar el gato-Juli-adapters.jar en el directorio/lib junto con log4j.jar y log4j .properties.

A continuación, usando algo como:

<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="logfile.log"/> 
    <param name="Threshold" value="INFO"/> 
    <param name="MaxFileSize" value="10MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %p %m%n"/> 
    </layout> 
</appender> 
Cuestiones relacionadas