J'utilise Tomcat 7.0.40 avec la configuration log4j conformément à http://Tomcat.Apache.org/Tomcat-7.0-doc/logging.html
Tout fonctionne comme prévu, à l'exception de la création de certains fichiers journaux qui ne sont pas configurés dans mon fichier log4j.properties:
log4j.rootLogger=INFO, CATALINA
# Define all the appenders
log4j.appender.CATALINA=org.Apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.log
log4j.appender.CATALINA.MaxFileSize=3MB
log4j.appender.CATALINA.MaxBackupIndex=10
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
log4j.appender.CATALINA.layout = org.Apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST=org.Apache.log4j.RollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.log
log4j.appender.LOCALHOST.MaxFileSize=3MB
log4j.appender.LOCALHOST.MaxBackupIndex=10
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.layout = org.Apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.MANAGER=org.Apache.log4j.RollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.log
log4j.appender.MANAGER.MaxFileSize=3MB
log4j.appender.MANAGER.MaxBackupIndex=10
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.layout = org.Apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.Host-MANAGER=org.Apache.log4j.RollingFileAppender
log4j.appender.Host-MANAGER.File=${catalina.base}/logs/Host-manager.log
log4j.appender.Host-MANAGER.MaxFileSize=3MB
log4j.appender.Host-MANAGER.MaxBackupIndex=10
log4j.appender.Host-MANAGER.Append=true
log4j.appender.Host-MANAGER.Encoding=UTF-8
log4j.appender.Host-MANAGER.layout = org.Apache.log4j.PatternLayout
log4j.appender.Host-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.CONSOLE=org.Apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = org.Apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
# Configure which loggers log to which appenders
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\
INFO, MANAGER
log4j.logger.org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager]=\
INFO, Host-MANAGER
Les fichiers créés alors qu’ils ne sont pas dans ma configuration sont:
Comme vous le voyez, ils utilisent un appender de fichier roulant quotidien, ce qui n’est pas souhaitable, car j’ai besoin d’un système ne nécessitant pas d’entretien, je préférerais donc un rollingfileappender dont maxBackupIndex empêche la croissance illimitée des journaux.
Alors, où puis-je configurer les journaux stdout, stderr et commons-daemon? Existe-t-il une configuration quelque part ou puis-je remplacer la configuration par ma propre configuration log4j? THX
Je prévois que nous aurons une exigence similaire/que nous aurons le même problème un peu plus tard dans l’avenir sur l’un de nos systèmes. Donc, j'étais désireux de trouver une solution/solution de rechange moi-même.
Examinez d'abord le démon commons pour voir s'il existe une configuration que nous pouvons faire pour obtenir un maxbackupindex sur les journaux; mais la recherche n'a pas beaucoup aidé.
Cependant, j'ai trouvé deux approches que les gens prennent pour traiter avec "les limites de connexion des journaux de Tomcat".
Trouvez context.xml
dans Tomcat dans le chemin: -
YourTomcatInstallDir\conf\context.xml
Modifiez la balise de contexte pour ajouter swallowOutput="true"
comme ci-dessous: -
<Context swallowOutput="true">
(Cela avale tout votre stdout/stderr et redirige vers votre système de journalisation sous-jacent.)
Dans votre log4j.properties; ajoutez config pour rediriger vos journaux org.Apache.catalina
vers votre propre fichier journal.
Votre enregistreur ressemblera à ceci: -
log4j.logger.org.Apache.catalina=INFO, YourAppender
(Sur YourAppender
, vous pouvez maintenant définir MaxBackupIndex
et MaxFileSize
afin d’obtenir le nombre de survols défini et une limite de la taille du journal.)
Si l'approche ci-dessus ne fonctionne pas; vous pouvez essayer d'utiliser un utilitaire externe comme mentionné dans la deuxième approche
Un outil simple appelé logrotate
est disponible pour obtenir l'effet souhaité sur les journaux que vous n'avez pas le contrôle. Voici quelques liens pour vous aider à démarrer.
L'utilisation de cet outil est assez simple et une analyse rapide de ces liens devrait vous permettre d'obtenir ce dont vous avez besoin.
J'avais le même problème et je suis finalement tombé sur la solution. Tomcat 7 pour Windows possède une application de propriétés Tomcat appelée Monitor Tomcat. Dans l'onglet de journalisation, vous devez supprimer la valeur "auto" dans les zones de saisie redirect stdout et stderr. Laissez simplement ce champ vide et il ne créera pas ces fichiers. Ensuite, vous pouvez utiliser log4j pour créer des fichiers journaux de roulement pour ces fichiers critiques à des fins de débogage ultérieur.
J'espère que cela pourra aider.
Sous Windows, vous devrez aller à Tomcat/bin/service.bat et éditer la variable PR_LOGPATH (toutes les variables) . Et probablement réinstaller le service par "service remove" et "service install". doit être très similaire
Version courte: Supprimez le texte auto
dans l'application de service. Cela désactivera la création des fichiers stdout et stderr. Le fichier "commons-daemon" avec lequel vous êtes coincé, je pense.
Version longue voir ci-dessous.
Tomcat pour Windows a une petite application de service spéciale. Cette application porte plusieurs noms. Exemple: Commons Daemon Service Manager
, procrun
. Et le fichier EXE sera généralement appelé quelque chose comme Tomcat7w.exe
/YourServiceNameHerew.exe
/Tomcat9w.exe
.
L'icône Windows est simplement étiquetée Monitor Tomcat
. Et à partir de là, vous passerez directement à l'onglet Logging
.
Voici une capture d'écran de l'onglet "Journalisation". Cette application peut générer plusieurs fichiers:
commons-daemon
.Pid file
. Nous ne nous soucions pas de ça maintenant.Redirect Stdout
.Redirect Stderror
.Donc, il y a 3 fichiers de log. NONE de ceux-ci sont tournés par défaut. ProcRun n'offre PAS d'installations pour cela.
Donc, plusieurs solutions de contournement me viennent à l’esprit:
Je pense que la position officielle peut en gros se résumer comme suit: "Quoi? Vos fichiers catalina/stdout/stderr deviennent trop volumineux? Eh bien, vous ne devriez pas vous connecter à ceux de toute façon." En d’autres termes: la seule option officiellement prise en charge semble être le numéro 1 (et 4).
Dans mes Tomcats, le fichier "commons-daemon" est généralement très petit et ne reçoit que quelques nouvelles lignes lorsque Tomcat est démarré ou arrêté. Même à Level: Debug
.
Les fichiers stdout et stderr redirigés peuvent devenir TRÈS volumineux.
Vous pouvez toutefois supprimer le texte auto
des champs de texte. Cela devrait complètement désactiver la génération de ces fichiers.