web-dev-qa-db-fra.com

Comment définir le nombre maximal de rouleaux et la taille maximale du journal pour tomcat?

J'ai un problème d'espace alors il faut limiter la taille de catalina.out à 10M et limiter le nombre de rouleaux à 3 jours précédents . Est-il possible de ne configurer que logging.properties?Thanks.

26
user710818

Comme Tomcat utilise en interne JUL pour se connecter, vous pouvez utiliser la propriété système Java.util.logging.config.file pour spécifier le chemin du fichier de propriétés. Pour le format de ce fichier de propriétés, vous pouvez vous référer à votre JRE_HOME/lib/logging.properties (qui est le fichier de configuration par défaut utilisé par JUL).

Cependant, JUL ne prend pas en charge la rotation quotidienne . Si vous le permettez, vous pouvez utiliser son Java.util.logging.FileHandler pour faire pivoter les fichiers journaux en fonction de la taille du fichier du journal:

# Define the FileHandler 
handlers= Java.util.logging.FileHandler

# Configure the FileHandler
Java.util.logging.FileHandler.pattern = %h/Java%u.log
Java.util.logging.FileHandler.limit = 1024000
Java.util.logging.FileHandler.count = 3
Java.util.logging.FileHandler.formatter =  Java.util.logging.SimpleFormatter
Java.util.logging.FileHandler.append=true

Ensuite, chaque fichier journal aura une taille limite de 1024000 octets (1 Mo) et une capacité maximale de déploiement jusqu'à 3 fichiers journaux de sortie. Vous pouvez vous référer à la Javadoc de Java.util.logging.FileHandler pour plus de détails sur la configuration. 


Vous devez implémenter le gestionnaire de fichiers si vous souhaitez prendre en charge la rotation sur une base quotidienne à l'aide de JUL. J'ai trouvé une implémentation personnalisée de ce blog . Je ne l'ai pas encore essayé. Vous pouvez le renvoyer si vous avez un intérêt.

36
Ken Chan

Depuis au moins Tomcat 5.5, "la journalisation interne pour Apache Tomcat utilise JULI, un fork découpé et renommé de Apache Commons Logging codé en dur pour utiliser le framework Java.util.logging (JUL)".

Les versions récentes de JULI et de la vanne de consignation d'accès utilisent par défaut un format de date AAAA-MM-jj. Les journaux juli.FileHandler sont nommés {préfixe} {date} {suffixe} où date est aaaa-MM-jj si la valeur de rotatable est true (valeur par défaut). Si la valeur est false, la date est supprimée et Tomcat ne gérera pas la rotation de fichier. Un paramètre maxDays permet également de limiter le nombre de journaux pivotés par Tomcat qui seront conservés. Vous pouvez par exemple définir cela sur 3 et ne conserver que trois jours de journaux.

La vanne d'accès au journal est plus configurable. Par exemple, il vous permet de spécifier un fileDateFormat à partir de la valeur par défaut aaaa-MM-jj. Vous pouvez donc ajouter HH pour effectuer une rotation toutes les heures, ou simplement une rotation mensuelle. Vous pouvez également choisir de différer la dénomination formatée jusqu'à la rotation avec renameOnRotate.

Si vous avez besoin de quelque chose de plus sophistiqué que celui-ci ou de la rotation basée sur la taille et le nombre de JUL, il peut être préférable de définir rotatif sur false et de gérer la rotation externe sur Tomcat.

1
jla