Désactiver l'Axe de journalisation log4j dans jboss
J'ai petite application en téléchargeant des images pour un autre site via un webservice.
Mon problème actuel est que l'Axe est l'enregistrement de l'ensemble du message xml (y compris les données binaires de la photo!) via la sortie standard (STDOUT) et je n'arrive pas à comprendre, comment le désactiver.
Mon log4j paramètres pour jboss (jboss-log4j.xml) comprend un appender normal STDOUT Info mémorisations, et j'ai essayé de désactiver l'axe avec la catégorie différente des paramètres:
<appender name="STDLOG" class="org.jboss.logging.appender.RollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/myapplication.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="5MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
</layout>
</appender>
à l'aide de ce paramètre pour STDOUT:
<category name="STDOUT">
<priority value="DEBUG"/>
<appender-ref ref="STDLOG"/>
</category>
J'ai essayé ces catégorie de paramètres, sans changer le résultat:
<category name="log4j.logger.org.apache.axis" additivity="false">
<priority value="ERROR"/>
</category>
<category name="org.apache.axis">
<priority value="ERROR"/>
</category>
Quelques exemple de journal de sortie ressemble à ceci:
2009-08-07 10:29:43,911 INFO [STDOUT] (http-127.0.0.1-8080-1) =======================================================
= Elapsed: 2190 milliseconds
= In message: <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<addVehicleImage xmlns="urn:VMgrWebService">
<id xmlns="">APP-T4QKR3U</id>
<idType xmlns="">chiffre</idType>
<data xmlns="">9j4AAQSkZJRgABAQAAAQABAAD2wBDAAUDBAQEAwUEBAQFB
QUGBww0TDMnrXAfKlLjnNJZcciiAOtqk9NG99qhZJKuyYq5k3G
8P2bVSOpT7rVddRP2Z/yqidRuMMKaO2CXRQNWP2jfOo4S4Bo3W
removed rest of image data...
IBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGe1UqaZJJy0jSHPGQ
2009-08-07 10:29:43,927 INFO [STDOUT] (http-127.0.0.1-8080-1) Upload result: true for image mypicture.JPG
mise à Jour
J'ai vérifié le axis-1.4.jar et il y a un fichier appelé simplelog.propriétés:
# Logging detail level,
# Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").
org.apache.commons.logging.simplelog.defaultlog=info
Réglage de ce paramètre à une erreur dans le pot, ou en tant que catégorie jboss-log4j.xml n'aide pas du tout.
Quiconque aucune idée de comment je peux désactiver l'Axe de l'exploitation forestière ou tout au moins à son niveau d'ERREUR?
Acclamations
Frank
- La version de l'Axe est-ce?
Vous devez vous connecter pour publier un commentaire.
Cela peut-être un peu tard dans la journée, mais le problème ne semble pas que l'enregistrement se fait dans l'Axe (via le Système.et Commons Logging), mais plutôt que le LogHandler est présent dans le gestionnaire de la chaîne. C'est ainsi que le temps écoulé est de se connecté.
Vous pouvez désactiver cette fonction à partir de la Axe fichier de configuration(s) - server-config.wsdd et/ou client-config.wsdd, selon que vous êtes en utilisant de l'Axe comme un serveur ou d'un client.
La raison pour laquelle vous voyez des messages dans votre console est probablement dû à la LogHandler.writeToConsole propriété définie sur true. Si vous définissez LogHandler.writeToConsole à faux, qu'il doit écrire dans un fichier tel que défini par la LogHandler.propriété fileName. Par défaut, le nom de fichier est de l'axe.journal.
Ok, après avoir essayé de trouver une meilleure solution, la seule façon est de vérifier le vieil héritage de code et de le transformer tout le Système.appels en réel des instructions de journalisation (beaucoup mieux quand même), et puis il suffit de filtrer le reste STDOUT messages dans un fichier journal.
L'une des principales raisons semble être Jboss lui-même. Cette discussion de la axis2 liste de diffusion explique pourquoi:
Ah, mais vous n'avez pas de mentionner que vous êtes à l'aide de jboss! C'est à peu près les forces de
leurs parents log4 config . Ignorer la axis2 l'exploitation forestière dans cette
cas, et à voir:
~/jboss/server/default/conf/log4j.xml
Là, vous avez pour limiter les catégories. Par exemple, vous avez:
Vous pouviez laisser qui que est et juste obtenir vos journaux de serveur.journal .
J'ai essayé définition de la catégorie, sans plus de succès. Je suppose que c'est à cause de différences entre l'axe et axis2. Donc, la seule solution était d'aller le bon codage de voie et il suffit de ne pas utiliser la sortie standard dans votre propre code 😉
Tout d'abord, vous aurez envie de vérifier que votre configuration log4j est le même que celui en cours de lecture - je rappeler que, dans le passé, au moins un axe de pot (je pense qu'il peut avoir été
axis-ant.jar
) est coupable d'une offre groupée de leur propre log4j.les propriétés. Il se peut que log4j est la lecture d'un fichier de configuration différent de la vôtre, ce qui rend vos efforts à peaufiner la configuration de l'inutile!Vous pouvez activer le système de propriétés
-Dlog4j.debug
avoir log4j d'impression standard qui fichier de configuration est en cours de lecture. Si nécessaire, vous pouvez utiliser-Dlog4j.configuration=<file>
pour pointer vers votre propre fichier.Aussi, je ne pense pas que cela est la cause de vos problèmes, mais pourquoi vous mettez-vous additivité de faux?
Le problème est que l'Axe n'est pas à l'aide de Log4j de journal de ce message, afin de tenter de modifier les log4j niveau de journalisation sur cette catégorie n'est pas pertinente. L'axe est à l'aide d'un Système.out.println.
La seule chose à laquelle je pense (ce qui n'est vraiment pas beau étant donné les effets secondaires) est à son tour le STDOUT de se déconnecter de tout. Probablement la définition de la priorité à off fera.
La seule vraie solution est de fixer l'Axe et corriger le code pour ne pas pomper le xml du Système.mais plutôt d'utiliser le mécanisme d'enregistrement au lieu - ensuite, vous pouvez la contrôler.
Il est très important de savoir qui log4j.fichier de propriétés ou log4j.xml est en cours de lecture. et comme Matt l'a souligné, il est essentiel de savoir pourquoi votre peaufiner les efforts ne sont pas de travail.